Unity实现第一人称算法

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

设计思路:首先第一人称,就是摄像机的位置得随着主角位置的变化而变化,且摄像机的高度得遇主角的高度一样,这样才有第一人称的感觉。

第一人称算法实现:

//变量皆以定义,只是部分算法

//获取摄像机设置摄像机的位置

void start()

m_camTransform=Camera.main.transofrm;

Vector3 pos=m_transform.position;

pos.y += m_camHeght;//使摄像机的高度与主角高度相等

m_camTransform.position=pos;//摄像机的位置

m_camTransform.rotation=m_transform.rotation;//获得主角的旋转角度

m_camRot=m_R=Transform=m_camTransform.eulerAngles;//使摄像机的旋转方向与主角的方向一致

 

//在Updata函数中调用Control函数

void Update()

Contol();

 

//控制摄像机旋转及主角旋转

void Control()

//获取鼠标移动的距离

float rh=Input.GetAxis("Mouse X");

float rv=Input.GetAxis("Mouse Y");

//旋转摄像机

m_camRot.x -= rv;

m_camRot.y += rh;

m_camTransform.eulerAngles=m_camRot;

//使主角的面向方向与摄像机的方向一致

Vector3 camrot = m_camTransform.enlerAngles;

camrot.x=0;camrot.y=0;

m_transform.eulerAngles=camrot;

 

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看