From 6cf30c620615508705e2e800c04eebb7a45e6e04 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 16 Apr 2022 16:20:20 +0800 Subject: + plant test --- AlienSurvival/Assets/Test/Scripts/TestAstro.cs | 65 +++++++++++++++++++------- 1 file changed, 48 insertions(+), 17 deletions(-) (limited to 'AlienSurvival/Assets/Test/Scripts/TestAstro.cs') diff --git a/AlienSurvival/Assets/Test/Scripts/TestAstro.cs b/AlienSurvival/Assets/Test/Scripts/TestAstro.cs index 3d7fd2d..3b4df18 100644 --- a/AlienSurvival/Assets/Test/Scripts/TestAstro.cs +++ b/AlienSurvival/Assets/Test/Scripts/TestAstro.cs @@ -4,18 +4,21 @@ using UnityEngine; public class TestAstro : MonoBehaviour { - [SerializeField] - private float m_Speed; + [SerializeField] private Transform m_Camera; - [SerializeField] - private SpriteRenderer m_Shadow; + [SerializeField] private float m_Speed; + + [SerializeField] private SpriteRenderer m_Shadow; + + private SpriteRenderer m_SpriteRenderer; + private TestFakeHeight m_FakeHeight; - private SpriteRenderer m_SpriteRenderer; + void Start() { m_SpriteRenderer = GetComponent(); - + m_FakeHeight = GetComponent(); } void Update() @@ -23,23 +26,51 @@ public class TestAstro : MonoBehaviour float x = Input.GetAxisRaw("Horizontal"); float y = Input.GetAxisRaw("Vertical"); - Vector2 direction = new Vector2(x, y).normalized; + Vector3 targetZoom = Vector3.one; + + if(x != 0 || y != 0) + { + targetZoom = new Vector3(1f, 1f, 1); + + Vector2 direction = new Vector2(x, y).normalized; - Vector3 position = transform.position; - position.x += direction.x * m_Speed * Time.deltaTime; - position.y += direction.y * m_Speed * Time.deltaTime; + Vector3 position = transform.position; + position.x += direction.x * m_Speed * Time.deltaTime; + position.y += direction.y * m_Speed * Time.deltaTime; - transform.position = position; + transform.position = position; - if (x > 0) + if (x > 0) + { + m_SpriteRenderer.flipX = false; + m_Shadow.flipX = false; + } + else if (x < 0) + { + m_SpriteRenderer.flipX = true; + m_Shadow.flipX = true; + } + } + else { - m_SpriteRenderer.flipX = false; - m_Shadow.flipX = false; + targetZoom = new Vector3(0.5f, 0.5f, 1); } - else if (x < 0) + + Vector3 zoom = m_Camera.localScale; + m_Camera.localScale = Vector3.Lerp(zoom, targetZoom, Time.deltaTime); + + CameraFollow(); + } + + void CameraFollow() + { + Vector3 pos = m_Camera.position; + pos.x = m_FakeHeight.x; + pos.y = m_FakeHeight.y; + + if(Vector3.Distance(pos, m_Camera.position) > 0.1f) { - m_SpriteRenderer.flipX = true; - m_Shadow.flipX = true; + m_Camera.position = Vector3.Lerp(m_Camera.position, pos, 3 * Time.deltaTime); } } -- cgit v1.1-26-g67d0