-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProjectileMove.js
101 lines (84 loc) · 2.22 KB
/
ProjectileMove.js
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
#pragma strict
var speed : float = 100.0;
var useTrailRenderer : boolean = false;
var myTrail : TrailRenderer;
var myTrailTime : float;
var origTrailTime : float;
var countingDown : boolean = false;
var EnemyLayer : int;
function Start () {
// floorObject = gameObject;
//Transform.translate(floorObject.distance);
EnemyLayer = LayerMask.NameToLayer("EnemyLayer");
if (useTrailRenderer) {
//origTrailTime = myTrailTime;
myTrail = gameObject.GetComponent(TrailRenderer);
// if (myTrail && !countingDown) {
// // Debug.Log("Shot called via Start");
// TrailPool();
// }
if (myTrail) {
TrailPool();
myTrail.enabled = true;
}
}
}
function OnEnable () {
if (useTrailRenderer) {
myTrail = gameObject.GetComponent(TrailRenderer);
// if (myTrail && !countingDown) {
// // Debug.Log("Shot called via OnEnable");
// TrailPool();
// }
if (myTrail) {TrailPool(); myTrail.enabled = true;}
}
}
// function OnEnable () {
// if ((useTrailRenderer) && (!firstTime)) {
// if (myTrail) {
// //Debug.Log("it's not your first use of this shot");
// myTrail.time = myTrailOrigTime;
// myTrail.enabled = true;
// TrailPool();
// }
// }
// }
function OnCollisionEnter (hit : Collision) {
if (myTrail && hit.gameObject.layer == EnemyLayer) {
myTrail.time = 0.0;
//myTrail.enabled = false;
}
}
function OnTriggerEnter (other : Collider) {
if (myTrail && other.gameObject.layer == EnemyLayer) {
myTrail.time = 0.0;
//myTrail.enabled = false;
}
}
function FixedUpdate () {
transform.Translate(Vector3.up * Time.deltaTime * speed);
}
function TrailPool() {
countingDown = true;
myTrailTime = origTrailTime;
//yield WaitForSeconds(myTrailTime/2);
//LerpTrail(myTrailTime/2);
// myTrail.time = 0.0;
// yield WaitForSeconds(myTrailTime/2);
// LerpTrail(myTrailTime/2);
}
function LerpTrail (timer : float) {
myTrail.time = myTrailTime;
var start = myTrailTime;
var end = 0.0;
var i = 0.0;
var step = 1.0/timer;
while (i <= 1.0) {
i += step * Time.deltaTime;
myTrail.time = Mathf.Lerp(start, end, i);
//Debug.Log("Your trail time is " + myTrail.time);
yield;
}
yield WaitForSeconds (timer);
countingDown = false;
}