position +=一个三维向量 位置 改变x y z 移动、
transform.Translate方法
Vector3 .MoveTowards 有目标点的匀速运动,到达目标点的时候一直运动
Vector3.Lerp线型差值移动,初始点到最总点的差值 差值:10 5 2.5 1.25........;
Vector3.Slerp球形差值移动有目标点的减速移动,更好的实现平滑移动。
AddForce给物体添加力
velocity给物体添加速度
Move人物控制器,移动快,不带模拟重力。
SimpleMove人物控制器,移动慢,带模拟重力。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lianxilianxi : MonoBehaviour {
public GameObject opj;
public Rigidbody rig;
public CharacterController cc;
void Start () {
rig = GetComponent();
cc = GetComponent();
transform.Rotate(new Vector3(180, 0, 0));
}
void Update () {
transform.position += new Vector3(0, 0, 0.1f);
transform.Translate(new Vector3(0.1f, 0, 0.1f));
transform.position = Vector3.MoveTowards(transform.position, opj.transform.position, 0.1f);
transform.position = Vector3.Lerp(transform.position, opj.transform.position, 0.01f);
transform.position = Vector3.Slerp(transform.position, opj.transform.position, 0.01f);
rig.AddForce(new Vector3(0, 0, 0.01f), ForceMode.VelocityChange);
rig.velocity += new Vector3(0, 0, 0.01f);
cc.Move(new Vector3(0, 0, 0.01f));
cc.SimpleMove(new Vector3(0, 0, 1));
}
}