using System.Collections; using System.Collections.Generic; using UnityEngine; public class BalloonCtrl : MonoBehaviour { Vector3 eulerAngles; private bool isFly = false; Rigidbody rigidbody; // Start is called before the first frame update void Start() { eulerAngles = transform.eulerAngles; rigidbody = GetComponent(); } //private void OnCollisionEnter(Collision collision) //{ // StopFly(); //} //private void OnCollisionStay(Collision collision) //{ // StopFly(); //} //private void OnCollisionExit(Collision collision) //{ // StartFly(); //} public void StartFly() { isFly = true; } public void StopFly() { isFly = false; } void Update() { if (isFly) { if (eulerAngles != transform.eulerAngles) { // transform.rotation.eulerAngles = eulerAngles; transform.eulerAngles = eulerAngles; } rigidbody.velocity = Vector3.zero; transform.position = new Vector3(transform.position.x, transform.position.y + 0.1f * GameInstantiateData.Instance.int_balloonFlySpeed * Time.deltaTime, transform.position.z); //transform.Translate(Vector3.up * Time.deltaTime); // print(transform.localPosition.y); Camera testCamera = Camera.main; Vector3 viewPos = testCamera.WorldToViewportPoint(transform.position); if (viewPos.x > 0 && viewPos.x < 1) { if (viewPos.y > 0 && viewPos.y < 1) { if (viewPos.z >= testCamera.nearClipPlane && viewPos.z <= testCamera.farClipPlane) { return; } } } //Debug.LogError("·É³öÆÁÄ»Íâ"); if (transform.position.y < GameMgr.instance.transform.position.y) { GameMgr.instance.HitTarget(gameObject.GetInstanceID()); } else { GameMgr.instance.GameOver(); } return; } } }