1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Unity3D 人称设置(第一人称视角 第三人称视角)

Unity3D 人称设置(第一人称视角 第三人称视角)

时间:2021-11-14 04:50:42

相关推荐

Unity3D 人称设置(第一人称视角 第三人称视角)

设置第一人称视角

1.把物体的坐标和摄像机的坐标设置成一样的,这样摄像机就在物体内部,就是第一人称的视角。

2.把摄像机拖拽进物体对象内,摄像机变成物体的子对象,这样摄像机就能跟着物体一起移动。

设置第三人称视角

方式一:(设置子对象)

1.将摄像机拖拽到合适的角度上

2.把摄像机拖拽进物体对象,摄像机成为物体的子对象,这样摄像机就可以跟着物体一起移动

方式二:(脚本设置)

创建摄像机对象变量:private Animation animation;获取主摄像机:mainCamera = Camera.main;设置主摄像机的位置:主摄像机的位置 = 物体对象的位置 + 两者相对坐标差

mainCamera.transform.position = transform.position + new Vector3(0, 11, -14);

实现摄像机延迟移动效果

Vector3.Lerp(主摄像机的位置, 主摄像机新位置, 时间差);

mainCamera.transform.position = Vector3.Lerp( mainCamera.transform.position, transform.position + new Vector3(0, 11, -14), Time.deltaTime);

代码实例

public class Player01 : MonoBehaviour{//设置变量private Animation animation;private Camera mainCamera;float runSpeed;float angleSpeed;// Start is called before the first frame updatevoid Start(){//获取动画对象animation = GetComponent<Animation>();//初始化移动速度和角速度runSpeed = 20f;angleSpeed = 120f;//获取主摄像机mainCamera = Camera.main;}// Update is called once per framevoid Update(){//设置移动速度float forward = Input.GetAxisRaw("Vertical") * runSpeed;//设置角速度float rotation = Input.GetAxisRaw("Horizontal") * angleSpeed;//判断移动还是站立if (forward > 0){//设置移动方向transform.Translate(0, 0, forward * Time.deltaTime);//播放跑步动画animation.CrossFade("run");}else{//播放站立动画animation.CrossFade("stand");}//设置移动方向transform.Rotate(0, rotation * Time.deltaTime, 0);}private void LateUpdate(){//主摄像机的位置 = 物体对象的位置 + 两者相对坐标差//mainCamera.transform.position = transform.position + new Vector3(0, 11, -14);//摄像机延迟移动效果mainCamera.transform.position = Vector3.Lerp(mainCamera.transform.position, transform.position + new Vector3(0, 11, -14), Time.deltaTime);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。