BalloonCtrl.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class BalloonCtrl : MonoBehaviour
  5. {
  6. Vector3 eulerAngles;
  7. private bool isFly = false;
  8. Rigidbody rigidbody;
  9. // Start is called before the first frame update
  10. void Start()
  11. {
  12. eulerAngles = transform.eulerAngles;
  13. rigidbody = GetComponent<Rigidbody>();
  14. }
  15. //private void OnCollisionEnter(Collision collision)
  16. //{
  17. // StopFly();
  18. //}
  19. //private void OnCollisionStay(Collision collision)
  20. //{
  21. // StopFly();
  22. //}
  23. //private void OnCollisionExit(Collision collision)
  24. //{
  25. // StartFly();
  26. //}
  27. public void StartFly()
  28. {
  29. isFly = true;
  30. }
  31. public void StopFly()
  32. {
  33. isFly = false;
  34. }
  35. void Update()
  36. {
  37. if (isFly)
  38. {
  39. if (eulerAngles != transform.eulerAngles)
  40. {
  41. // transform.rotation.eulerAngles = eulerAngles;
  42. transform.eulerAngles = eulerAngles;
  43. }
  44. rigidbody.velocity = Vector3.zero;
  45. transform.position = new Vector3(transform.position.x, transform.position.y + 0.1f * GameInstantiateData.Instance.int_balloonFlySpeed * Time.deltaTime, transform.position.z);
  46. //transform.Translate(Vector3.up * Time.deltaTime);
  47. // print(transform.localPosition.y);
  48. Camera testCamera = Camera.main;
  49. Vector3 viewPos = testCamera.WorldToViewportPoint(transform.position);
  50. if (viewPos.x > 0 && viewPos.x < 1)
  51. {
  52. if (viewPos.y > 0 && viewPos.y < 1)
  53. {
  54. if (viewPos.z >= testCamera.nearClipPlane && viewPos.z <= testCamera.farClipPlane)
  55. {
  56. return;
  57. }
  58. }
  59. }
  60. //Debug.LogError("·É³öÆÁÄ»Íâ");
  61. if (transform.position.y < GameMgr.instance.transform.position.y)
  62. {
  63. GameMgr.instance.HitTarget(gameObject.GetInstanceID());
  64. }
  65. else
  66. {
  67. GameMgr.instance.GameOver();
  68. }
  69. return;
  70. }
  71. }
  72. }