summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Test/Scripts/TestAstro.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-04-16 16:20:20 +0800
committerchai <chaifix@163.com>2022-04-16 16:20:20 +0800
commit6cf30c620615508705e2e800c04eebb7a45e6e04 (patch)
tree7383063f55f9709a5d9fb55caa1b37ad02a7cc11 /AlienSurvival/Assets/Test/Scripts/TestAstro.cs
parent67eb78bc7820f189b60da157dddea1ec16ade65a (diff)
+ plant test
Diffstat (limited to 'AlienSurvival/Assets/Test/Scripts/TestAstro.cs')
-rw-r--r--AlienSurvival/Assets/Test/Scripts/TestAstro.cs65
1 files changed, 48 insertions, 17 deletions
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<SpriteRenderer>();
-
+ m_FakeHeight = GetComponent<TestFakeHeight>();
}
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);
}
}