-
Notifications
You must be signed in to change notification settings - Fork 0
/
RespawnCollider.cs
103 lines (82 loc) · 3.05 KB
/
RespawnCollider.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
public class RespawnCollider : MonoBehaviour
{
// Start is called before the first frame update
public GameObject Camera;
private float smooth = 5.0f;
private int respawnPoint = 0;
public List<GameObject> TouchingObjects;
private int randomRespawn;
public GameObject Character1;
public GameObject Character2;
public GameObject Character3;
public GameObject Character4;
CharacterController1 CharacterScript1;
CharacterController2 CharacterScript2;
CharacterController3 CharacterScript3;
CharacterController4 CharacterScript4;
public string randomName;
public GameObject[] respawns;
public Vector3 respawnLocation;
void Start()
{
// var Character = GameObject.Find("Character");
// var Character2 = GameObject.Find("Character2");
// var Character3 = GameObject.Find("Character3");
// var Character4 = GameObject.Find("Character4");
TouchingObjects = new List<GameObject>();
CharacterScript1 = Character1.GetComponent<CharacterController1>();
CharacterScript2 = Character2.GetComponent<CharacterController2>();
CharacterScript3 = Character3.GetComponent<CharacterController3>();
CharacterScript4 = Character4.GetComponent<CharacterController4>();
respawns = GameObject.FindGameObjectsWithTag("RespawnPoint");
}
// Update is called once per frame
void Update()
{
Camera.transform.position = Vector3.Lerp (transform.position, Camera.transform.position,Time.deltaTime * smooth);
}
private void OnTriggerEnter(Collider other)
{
if (other.tag == "RespawnPoint")
{
if (!TouchingObjects.Contains(other.gameObject))
{
TouchingObjects.Add(other.gameObject);
}
}
}
private void OnTriggerExit(Collider other)
{
if (other.tag == "RespawnPoint")
{
if (TouchingObjects.Contains(other.gameObject))
{
TouchingObjects.Remove(other.gameObject);
}
}
}
public void RespawnLocation1(){
randomRespawn = Random.Range (0,TouchingObjects.Count);
respawnLocation = TouchingObjects[randomRespawn].transform.position;
CharacterScript1.isDead = false;
}
public void RespawnLocation2(){
randomRespawn = Random.Range (0,TouchingObjects.Count);
respawnLocation = TouchingObjects[randomRespawn].transform.position;
CharacterScript2.isDead = false;
}
public void RespawnLocation3(){
randomRespawn = Random.Range (0,TouchingObjects.Count);
respawnLocation = TouchingObjects[randomRespawn].transform.position;
CharacterScript3.isDead = false;
}
public void RespawnLocation4(){
randomRespawn = Random.Range (0,TouchingObjects.Count);
respawnLocation = TouchingObjects[randomRespawn].transform.position;
CharacterScript4.isDead = false;
}
}