using UnityEngine;
using System.Collections;
/**
* 人物移动,摄像机跟随
* */
public class PersonMove : MonoBehaviour {
//跟随的摄像机
public Camera currCamera;
//人物目标坐标
private Vector3 targetPos;
//人物与摄像机的距离
private Vector3 apartPos;
// Use this for initialization
private Vector3 mouseRightPos;
void Start () {
//将目标坐标初始化成当前坐标
targetPos = transform.position;
//计算人物与摄像机的距离
apartPos = transform.position - currCamera.transform.position;
}
void FixedUpdate(){
if (targetPos != transform.position) {
//获取人物身上的组件
CharacterController cc = GetComponent<CharacterController> ();
//获取人物每一步移动的坐标
Vector3 currPos = Vector3.ClampMagnitude (targetPos - transform.position, 0.1f);
//移动到坐标
cc.Move (currPos);
//计算出摄像机的目标坐标
Vector3 cameraTarget = transform.position-apartPos;
//设置摄像机的坐标
currCamera.transform.position=Vector3.MoveTowards(currCamera.transform.position,cameraTarget,0.1f);
}
}
voi
Unity3D 人物移动 摄像机跟随
最新推荐文章于 2024-09-01 23:40:15 发布
该博客介绍了一个Unity3D脚本,用于实现人物角色的移动以及摄像机的跟随效果。在`FixedUpdate`中,角色根据目标位置逐步移动,并更新摄像机的位置,保持与角色的固定距离。在`Update`函数中,响应鼠标点击事件,当左键按下时设置目标位置,右键按下时摄像机围绕角色旋转。同时,脚本提供了一个`getTargetPos`函数,将屏幕点击位置转换为3D空间中的地面位置作为角色移动的目标。
摘要由CSDN通过智能技术生成