-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSoldierSceneManager.cs
88 lines (82 loc) · 3.32 KB
/
SoldierSceneManager.cs
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
78
79
80
81
82
83
84
85
86
87
88
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class SoldierSceneManager : MonoBehaviour
{
[SerializeField] private Text text;
[SerializeField] private Text endingText;
[SerializeField] private Image image;
[SerializeField] private GameObject Soldier;
[SerializeField] private GameObject Zombie;
[SerializeField] private GameObject Canvas;
[SerializeField] private float speed = 8f;
[SerializeField] private GameObject[] Ballons;
[SerializeField] private Transform[] BallonSpawner;
[SerializeField] private AudioSource musicPlayer;
private bool IsAttack;
private bool IsDance;
private bool IsTurn;
// Update is called once per frame
void Update () {
//When we tap the phone
if (Input.GetMouseButtonDown(0))
{
text.text = "Fight!";
Soldier.GetComponent<Animator>().SetBool("Aim",true);
Zombie.GetComponent<Animator>().SetBool("attack",true);
IsAttack = true;
StartCoroutine(endingAnimation());
}
#region WeirdCode
if(IsAttack) Zombie.transform.position = Vector3.Lerp(Zombie.transform.position, Soldier.transform.position , Time.deltaTime / 4);
if (IsDance)
{
Vector3 target = new Vector3(Camera.main.transform.position.x,
1, Camera.main.transform.position.z);
Quaternion q = Quaternion.LookRotation(target - Zombie.transform.position);
Zombie.transform.rotation = Quaternion.Lerp(Zombie.transform.rotation, q, Time.deltaTime);
}
if (IsTurn)
{
Vector3 target = new Vector3(Camera.main.transform.position.x,
1, Camera.main.transform.position.z);
Quaternion q = Quaternion.LookRotation(target - Soldier.transform.position);
Soldier.transform.rotation = Quaternion.Lerp(Soldier.transform.rotation, q, Time.deltaTime);
}
//if(Canvas.activeInHierarchy) Canvas.transform.LookAt(Camera.main.transform);
#endregion
}
IEnumerator endingAnimation()
{
yield return new WaitForSeconds(2.5f); //Zombie walking
IsDance = true;
IsAttack = false;
Zombie.GetComponent<Animator>().SetBool("attack", false); //Zombie stop walking
yield return new WaitForSeconds(2f); //Zombie turning
Zombie.GetComponent<Animator>().SetBool("dance",true); //Zombie dancing
StartCoroutine(spawningBallons());
yield return new WaitForSeconds(2f);
IsTurn = true; //SpaceBoy turning
yield return new WaitForSeconds(2f); //Awkward pause
Canvas.SetActive(true); //Talk popup
}
#region SecondWeirdCode
IEnumerator spawningBallons()
{
musicPlayer.Play();
for (int i = 0; i < 20; i++)
{
int index = Random.Range(0, BallonSpawner.Length);
GameObject ballon = Instantiate(Ballons[Random.Range(0, Ballons.Length)], BallonSpawner[index]);
ballon.GetComponent<Rigidbody>().velocity = ballon.transform.up * 10f;
Destroy(ballon, 3f);
yield return new WaitForSeconds((float) Random.Range(8,15)/10);
}
}
#endregion
public void loadSecretPorject()
{
SceneManager.LoadScene("Main");
}
}