using System.Collections; using System.Collections.Generic; using UnityEngine; public class BulletCtrl : MonoBehaviour { /// /// 运动刚体组件 /// Rigidbody rigidbody; Collision collision1; SphereCollider bulletColl; public int speed; private Vector3 vector3; private GameObject ef_baodian; private GameObject ef_kuosan; void Awake() { rigidbody = gameObject.AddComponent(); rigidbody.useGravity = false; bulletColl = GetComponent(); ef_baodian = transform.Find("EF_baodian").gameObject; ef_kuosan = transform.Find("EF_kuosanquan").gameObject; ef_kuosan.SetActive(false); ef_baodian.SetActive(false); } public void PlayShoot(GameObject go) { rigidbody.useGravity = GameInstantiateData.Instance.bullet_useGravity; rigidbody.mass = GameInstantiateData.Instance.bullet_Mass; speed = GameInstantiateData.Instance.bullet_Force; bulletColl.material.bounciness = GameInstantiateData.Instance.bullet_Bounciness; //碰撞检测方式 //rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative; rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; vector3 = go.transform.up; rigidbody.AddForce(vector3 * speed); ef_kuosan.SetActive(false); } void OnCollisionEnter(Collision collision) { if (collision1 == null) { collision1 = collision; //碰到气球 if (collision1.gameObject.tag.CompareTo("balloon")== 0) { ef_baodian.SetActive(true); GameMgr.instance.HitTarget(collision.gameObject.GetInstanceID()); } } rigidbody.useGravity = true; } private void OnCollisionExit(Collision collision) { // Debug.Log("退出" + collision.gameObject.name); collision1 = null; } }