一、朝向目标(MoveTowards)
二、朝向目标(Slerp)
/// /// 摄像机位置调整
///
private void cameraToTarget(float speed)
{
float pDis = Vector3.Distance(mMainCamera.transform.position, targetTransform.position);
float eDis = Vector3.Distance(mMainCamera.transform.eulerAngles,
targetTransform.eulerAngles);
print("dis:"+pDis+" "+eDis);
if (pDis > errorAllow || eDis > errorAllow)
{
print("转");
//转位置
mMainCamera.transform.position = Vector3.Slerp(mMainCamera.transform.position,
targetTransform.position, speed * Time.deltaTime);
//转角度
mMainCamera.transform.eulerAngles = Vector3.Slerp(mMainCamera.transform.eulerAngles,
targetTransform.eulerAngles, speed * Time.deltaTime);
}
else {
flag = 0; //控制归位
}
}
三、按键控制
void Update()
{
//四个方向
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.S))
{
transform.Translate(Vector3.back * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.A))
{
transform.Rotate(Vector3.down * rotationSpeed * Time.deltaTime, Space.Self);
//transform.Translate(Vector3.left * moveSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.D))
{
transform.Rotate(Vector3.up * rotationSpeed * Time.deltaTime, Space.Self);
//transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
}
}