BulletCtrl.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class BulletCtrl : MonoBehaviour
  5. {
  6. /// <summary>
  7. /// 运动刚体组件
  8. /// </summary>
  9. Rigidbody rigidbody;
  10. Collision collision1;
  11. SphereCollider bulletColl;
  12. public int speed;
  13. private Vector3 vector3;
  14. private GameObject ef_baodian;
  15. private GameObject ef_kuosan;
  16. void Awake()
  17. {
  18. rigidbody = gameObject.AddComponent<Rigidbody>();
  19. rigidbody.useGravity = false;
  20. bulletColl = GetComponent<SphereCollider>();
  21. ef_baodian = transform.Find("EF_baodian").gameObject;
  22. ef_kuosan = transform.Find("EF_kuosanquan").gameObject;
  23. ef_kuosan.SetActive(false);
  24. ef_baodian.SetActive(false);
  25. }
  26. public void PlayShoot(GameObject go)
  27. {
  28. rigidbody.useGravity = GameInstantiateData.Instance.bullet_useGravity;
  29. rigidbody.mass = GameInstantiateData.Instance.bullet_Mass;
  30. speed = GameInstantiateData.Instance.bullet_Force;
  31. bulletColl.material.bounciness = GameInstantiateData.Instance.bullet_Bounciness;
  32. //碰撞检测方式
  33. //rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative;
  34. rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
  35. vector3 = go.transform.up;
  36. rigidbody.AddForce(vector3 * speed);
  37. ef_kuosan.SetActive(false);
  38. }
  39. void OnCollisionEnter(Collision collision)
  40. {
  41. if (collision1 == null)
  42. {
  43. collision1 = collision;
  44. //碰到气球
  45. if (collision1.gameObject.tag.CompareTo("balloon")== 0)
  46. {
  47. ef_baodian.SetActive(true);
  48. GameMgr.instance.HitTarget(collision.gameObject.GetInstanceID());
  49. }
  50. }
  51. rigidbody.useGravity = true;
  52. }
  53. private void OnCollisionExit(Collision collision)
  54. {
  55. // Debug.Log("退出" + collision.gameObject.name);
  56. collision1 = null;
  57. }
  58. }