初识

  1. 初识
    1. 跟随目标转动
    2. 每隔一段时间调用
    3. Lerp 和 SLerp
    4. 通过标签来查找

初识

UnityRoute

01

02

跟随目标转动

1
2
3
Vector3 vec = (target.position - transform.position);
Quaternion rotate = Quaternion.LookRotation(vec);
transform.localRotation = Quaternion.Slerp(transform.localRotation, rotate, angleSpeed);

每隔一段时间调用

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
//1  协程
IEnumerator Func()
{
while(true)
{
yield return new WaitForSeconds(2.0f);
//Specific functions put here
}
}

// 2 计算时间
private float passedTime;
public float targetTime;
void Repete()
{
if(passedTime>targetTime)
{
// function
passedTime = 0;
}
passedTime += Time.deltaTime;

// 3
InvokeRepeating("functionName", 0, 3);//放在start或awake中 不能放update中 0为前摇 3为时间间隔
CancelInvoke("functionName");

Lerp 和 SLerp

用于可控制时间的缓慢旋转 transform.Rotation = Quaterntion.Lerp()
线性插值 球形插值
从四元数的角度来看,线性插值每帧得出的旋转结果是不均匀的,这个比Slerp更快但是如果旋转较远看起来就比较差。因此球形插值更为合理,它不改变长度

通过标签来查找

GameObject.FindWithTag( 标签名 )如果场景中存在指定标签的游戏对象,那么返回该对象的引用,否则返回null;
如果多个游戏对象使用同一标签,那么返回第一个游戏对象的引用(这里的第一个,指的是最后一个添加的游戏对象)。
如果场景中有多个相同标签的游戏对象,可以通过FindGameobjectWithTag()方法获取游戏对象数组。

×

喜欢就点赞,疼爱就打赏