From ded822e98e8eda49618d17e53407b0df1896e539 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 22 Apr 2022 19:24:15 +0800 Subject: * rename AlienSurvival project to SurvivalTest --- SurvivalTest/Assets/Scripts/Test/TestBomb.cs | 67 ++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 SurvivalTest/Assets/Scripts/Test/TestBomb.cs (limited to 'SurvivalTest/Assets/Scripts/Test/TestBomb.cs') diff --git a/SurvivalTest/Assets/Scripts/Test/TestBomb.cs b/SurvivalTest/Assets/Scripts/Test/TestBomb.cs new file mode 100644 index 0000000..77933f4 --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Test/TestBomb.cs @@ -0,0 +1,67 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class TestBomb : MonoBehaviour +{ + + [SerializeField] private float m_GravityScale = 1f; + + [SerializeField] private GameObject m_ExplosionEffect; + + private TopDownTransform m_Coords; + + private Vector3 GRAVITY = new Vector3(0, 0, -9.8f); + + private Vector3 m_Velocity; // x, y, fakeHeight + + /// + /// 设置初始参数,都在fake空间下 + /// + /// + /// + /// + public void Set(Vector3 initPosition, Vector3 initDirection, float initSpeed) + { + m_Coords = GetComponent(); + m_Coords.position = initPosition; + + m_Velocity = initDirection * initSpeed; + } + + private void Update() + { + Vector3 move = m_Velocity * Time.deltaTime; + + if (m_Velocity.magnitude > 0 && m_Coords.z + move.z >= 0) + { + m_Coords.x += move.x; + m_Coords.y += move.y; + m_Coords.z += move.z; + m_Velocity += GRAVITY * Time.deltaTime; + + //transform.rotation *= Quaternion.Euler(0, 0, 20 * m_Velocity.magnitude * Time.deltaTime); + } + else + { + m_Velocity = Vector3.zero; + + this.gameObject.SetActive(false); + Destroy(this.gameObject); + PlayExplosion(); + } + } + + private void PlayExplosion() + { + GameObject exp = Instantiate(m_ExplosionEffect); + + TopDownTransform coord = exp.GetComponent(); + coord.position = m_Coords.position; + + exp.GetComponent().Sorting(); + + exp.SetActive(true); + } + +} -- cgit v1.1-26-g67d0