下面的案例是实现宠物跟随的效果
下面的代码是角色移动的脚本
using UnityEngine;
using System.Collections;
public class PlayerMove : MonoBehaviour
{
// Update is called once per frame
void Update () {
//按W键 前进
if (Input.GetKey(KeyCode.W))
{
transform.position += transform.forward * 1 * Time.deltaTime;
}
//按S键 后退
if (Input.GetKey(KeyCode.S))
{
transform.position += transform.forward * -1 * Time.deltaTime;
}
//按A键 向左旋转
if (Input.GetKey(KeyCode.A))
{
transform.Rotate(transform.up, -30 * Time.deltaTime);
}
//按D键 向右旋转
if (Input.GetKey(KeyCode.D))
{
transform.Rotate(transform.up, -30 * Time.deltaTime);
}
}
}
- 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
以下是宠物绑定的脚本
using UnityEngine;
using System.Collections;
public class Follow : MonoBehaviour {
public Transform target;
public Vector3 offset;
//向后的距离
public float backDistance = 2;
//高度
public float topDistance = 2;
//在LateUpdate中进行物理
void LateUpdate()
{
//设置偏移量
offset = -target.forward * backDistance + target.up * topDistance;
//使用插值,让宠物有一个平滑的移动
transform.position = Vector3.Lerp(transform.position, target.position + offset,Time.deltaTime);
//宠物的旋转和玩家的旋转保持一致
transform.rotation = target.rotation;
}
}