summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Test/TestAstro.cs
blob: 3b4df18bf0c3b9325b3629fe2394a23649f7472a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestAstro : MonoBehaviour
{
	[SerializeField] private Transform m_Camera;

	[SerializeField] private float m_Speed;

	[SerializeField] private SpriteRenderer m_Shadow;

	private SpriteRenderer m_SpriteRenderer;
	private TestFakeHeight m_FakeHeight;

	
	
    void Start()
    {
		m_SpriteRenderer = GetComponent<SpriteRenderer>();
		m_FakeHeight = GetComponent<TestFakeHeight>();
	}

	void Update()
    {
		float x = Input.GetAxisRaw("Horizontal");
		float y = Input.GetAxisRaw("Vertical");

		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;

			transform.position = position;

			if (x > 0)
			{
				m_SpriteRenderer.flipX = false;
				m_Shadow.flipX = false;
			}
			else if (x < 0)
			{
				m_SpriteRenderer.flipX = true;
				m_Shadow.flipX = true;
			}
		}
		else
		{
			targetZoom = new Vector3(0.5f, 0.5f, 1);
		}

		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_Camera.position = Vector3.Lerp(m_Camera.position, pos, 3 * Time.deltaTime);
		}

	}
}