-
Notifications
You must be signed in to change notification settings - Fork 0
/
CCFlyAction.cs
72 lines (65 loc) · 1.7 KB
/
CCFlyAction.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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CCFlyAction : SSAction
{
float acceleration;
float horizontalSpeed;
Vector3 direction;
float time;
Rigidbody rigidbody;
// Vector3 old;
public static CCFlyAction getCCFlyAction()
{
CCFlyAction action = ScriptableObject.CreateInstance<CCFlyAction>();
return action;
}
public override void Start()
{
enable = true;
acceleration = 9.8f;
time = 0;
// old = gameObject.transform.position;
horizontalSpeed = gameObject.GetComponent<DiskData>().getSpeed();
direction = gameObject.GetComponent<DiskData>().getDirection();
rigidbody = gameObject.GetComponent<Rigidbody>();
if (rigidbody)
{
rigidbody.velocity = horizontalSpeed * direction;
}
}
public override void Update()
{
if (gameObject.activeSelf)
{
time += Time.deltaTime;
transform.Translate(Vector3.down * acceleration * time * Time.deltaTime);
transform.Translate(direction * horizontalSpeed * Time.deltaTime);
clear();
}
}
public override void FixedUpdate()
{
if (gameObject.activeSelf)
{
clear();
}
}
private void clear()
{
if (this.transform.position.y < -4)
{
this.destroy = true;
this.enable = false;
this.callback.SSActionEvent(this);
}
}
public override void stopAction()
{
if (rigidbody)
{
rigidbody.velocity = Vector3.zero;
rigidbody.useGravity = false;
}
}
}