-
Notifications
You must be signed in to change notification settings - Fork 0
/
SpaceShotScript.cs
69 lines (51 loc) · 1.17 KB
/
SpaceShotScript.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
using UnityEngine;
using System.Collections;
public class SpaceShotScript : MonoBehaviour {
public float lifeTime;
public float minSize;
public float scaleSpeed;
public Vector3 baseScale;
public GameObject impact;
bool shrink = false;
Collider col;
GameObject impactBoom;
void OnEnable()
{
col = GetComponent<Collider>();
col.enabled = true;
Invoke("Recycle", lifeTime);
shrink = true;
}
void OnDisable()
{
CancelInvoke();
shrink = false;
transform.localScale = baseScale;
}
void Update()
{
if (shrink)
{
transform.localScale = Vector3.Lerp(transform.localScale,
baseScale * minSize,
scaleSpeed * Time.deltaTime);
}
}
void OnCollisionEnter(Collision c)
{
ContactPoint contact = c.contacts[0];
Quaternion rotator = Quaternion.FromToRotation(Vector3.forward, contact.normal);
impactBoom = (GameObject)Instantiate(impact,
transform.TransformPoint(contact.point),
rotator);
}
void OnCollisionExit(Collision c)
{
shrink = false;
col.enabled = false;
}
void Recycle()
{
gameObject.SetActive(false);
}
}