觉得第一人称与第三人称视角好和觉得第三人称视角好有什么区别

那个呢,写小说是以第一人称视角还是第三人称视角来写比较好?_高达seed吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:47,099贴子:
那个呢,写小说是以第一人称视角还是第三人称视角来写比较好?
春节档电影大盘数据对比
有人吃过3种以上,算小编输
您的寒假余额不足,点此...
元宵节到了,我们来一起...
谈谈冯叔叔的恋爱史。
骑了还是吃了?
别怀疑,这就是迪丽热巴。
你家本命上榜没?
可以说连基本的立意都没...
手把手教你成为美食摄影...
安利《大唐荣耀》
风云稻米——特邀微博贴吧...
插画培训,60天入门到插画高手,推荐工作
自己善长那个用那个
贴吧热议榜
使用签名档&&
保存至快速回贴11481人阅读
Unity3D(155)
最近一直在搞3D漫游,在第一人称和第三人称视角切换碰到些问题,视角的例子我是导入的官方的character controller包,不得不佩服官方脚本语言的写法,看了一下写的很完美,新手估计比较难看懂,里面涉及到一些角度,还有向量等的计算,这就要求有一定的图形学的基础,我将官方的第一人称视角和第三人称视角结合了一下,但发现还是不那么容易,不仅仅只是简单的摄像机的切换和position以及rotation的赋值而已,当然这种方法适合第三人称切换至第一人称,而第一人称切换至第三人称你会发现根本方向就切换不过来,位置是对了,但方向还是原来的方向,这就让我有点苦恼,然后不得已只能硬着头皮去看官方写的控制第三人称人物运行的脚本ThirdPersonController,里面有一些英文的注解,这脚本写的还是有一定的技术含量,毕竟是官方的嘛,想要看懂还是要慢慢静下心来看的。实现步骤:& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&1.导入官方的第一人称和第三人称的Person,会发现,第三人称的Main Camera是在model的外面而第一人称的Main Camera是在model的里面,这里最好统一一下,我将第三人称的那个model拉到我新建的一个空物体下(记得reset这空物体),然后将主摄像机也拖放到这个空物体下,最好确保camera和3rdPersonController平级。这里还要说一下的,将3rdPersonController也reset一下,然后设置PositionY跟相机的Y一样,我这里设置的是51大概。2.创建视角切换的脚本viewpointSwitch,挂在GUI的物体上,这个物体挂了一些关于GUI还有控制鼠标隐藏显示的脚本鼠标隐藏和显示:void Update()
if (Input.GetKey(KeyCode.H))
// Lock the cursor inside gameview
Screen.lockCursor =
// Hide mouse cursor
Screen.showCursor =
if(Input.GetKey(KeyCode.U))
// Lock the cursor inside gameview
Screen.lockCursor =
//Show mouse cursor
Screen.showCursor =
}viewpointSwitch:using UnityE
using System.C
public class ViewpointSwitch : MonoBehaviour {
//从场景中拖入的object
public GameObject Obj_3
public GameObject cam_3
public GameObject gobj_3
public GameObject Obj_1
public GameObject cam_1
public GameObject gobj_1
//记录刚进入第一人称视角时候的欧拉角和离开第一视角时候的欧拉角(Y方向)
float pre1fsAngle = 0;
float cur1fsAngle = 0;
// Update is called once per frame
void Update ()
//切换至第一人称视角
if (Input.GetKey(KeyCode.F1))
//记录一开始
//pre1fsAngle = cam_1fs.transform.eulerAngles.y;
pre1fsAngle = cam_3rd.transform.eulerAngles.y;
//记录的第一人称(这里取的是第三人称,其实是一样的)一开始的y方向欧拉角,这里没用上面注释掉的写法是防止重复按f1键切换然后覆盖初始值导致旋转角度差值缩小
if (!Obj_1fs.activeSelf)
Obj_1fs.SetActive(true);
GameObject.Find(&Main Character Controller&).transform.localPosition = GameObject.Find(&3rd Person Controller&).transform.localP
GameObject.Find(&Main Character Controller&).transform.localRotation = GameObject.Find(&3rd Person Controller&).transform.localR
Obj_3rd.SetActive(false);
//切换至第三人称视角
if (Input.GetKey(KeyCode.F2))
cur1fsAngle = cam_1fs.transform.eulerAngles.y;
if (!Obj_3rd.activeSelf)
Obj_3rd.SetActive(true);
GameObject.Find(&3rd Person Controller&).transform.localPosition = GameObject.Find(&Main Character Controller&).transform.localP
//注意这里Mathf里面的方法是幅度,我这里就进行了一个角度转幅度的计算:幅度=角度*pi/180
float angle = (cur1fsAngle - pre1fsAngle) * Mathf.PI / 180;
gobj_3rd.GetComponent&ThirdPersonController&().v = Mathf.Cos(angle);
gobj_3rd.GetComponent&ThirdPersonController&().h = Mathf.Sin(angle);
print(&旋转角度:& + (cur1fsAngle-pre1fsAngle));
gobj_3rd.GetComponent&ThirdPersonController&().flag =
//这个flag标志是让ThirdPersonController的update方法执行改变上面的v,h一次,然后第二帧的时候就执行v=Input.GetAxisRaw(&Vertical&)和h=Input.GetAxisRaw(&Horizontal&)
Obj_1fs.SetActive(false);
备注://w(1) & s(-1)(前后运动)v = Input.GetAxisRaw(&Vertical&);&//a(-1) & d(1)(左右运动)&h = Input.GetAxisRaw(&Horizontal&);这里的v和h变量要解释一下,v代表前后方向,如果按下前方向w键,这里Input.GetAxisRaw(&Vertical&)会有一个-1~1的一个变化,如果是遥感就会有浮点数,但如果是键盘的话,一般就是0,-1,1三个状态,按下w前进方向键,v会变成1,如果按下后退键s,v就会变成-1,如果不按则是0。h就是代表水平左右轴向,a键按下h=-1,d按下h=1,不按则代表0。ThirdPersonController.js人物旋转的方向是始终转向一个前进的方向向量,var targetDirection = h * right + v *这里的right和forward分表表示X轴(forward方向)和Z轴(right方向)的单位向量var forward = cameraTransform.TransformDirection(Vector3.forward);var right = Vector3(forward.z, 0, -forward.x);效果图:& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &&1.刚开始启动,第三人称的模型朝向以及旋转坐标& &&2.按一下D键,也就是右键,人物旋转,90度,朝向以及旋转坐标,以及v,h(控制旋转方向的一个系数,上文有介绍)的值在线展示: & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &==================== 迂者 丁小未 CSDN博客专栏=================MyBlog:& & & & & & &MyQQ:Unity QQ群: & & & & cocos2dx QQ群:======================&相互学习,共同进步&===================&转载请注明出处:欢迎关注我的微博:需要工程文件的请留言!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1192160次
积分:16951
积分:16951
排名:第447名
原创:396篇
转载:220篇
评论:364条
我叫小未,网名Aladdin,主做U3D游戏程序,某普通本科学校毕业,但不甘于平庸,喜欢尝试,喜欢研究计算机技术,13年9月份开始工作,曾两年就职于巨人网络做游戏客户端程序,闲暇时间做过麦子学院在线讲师,做过独立开发,做过C#游戏服务器和.NET Web服务器,做过IOS原生开发,爱游戏,爱coding!
学习交流群:
**********常用*****************
*********不常用****************
转载或使用本博客原创和翻译文章,请标明出外并附上链接。
阅读:8358
文章:10篇
阅读:16713
文章:12篇
阅读:13569
文章:24篇
阅读:97036
文章:13篇
阅读:21172
文章:31篇
阅读:70468
文章:34篇
阅读:50777
文章:20篇
阅读:41022
(9)(2)(1)(3)(3)(1)(2)(1)(1)(4)(2)(2)(1)(1)(1)(3)(1)(1)(3)(1)(4)(2)(6)(17)(12)(13)(17)(12)(24)(32)(58)(42)(12)(48)(126)(33)(2)(2)(13)(9)(15)(5)(12)(14)(17)(5)(1)(1)(17)(2)(2)【08-01】怎么回事?第一人称视角,变成第三人称视角,下方如图_逆战吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:1,433,654贴子:
【08-01】怎么回事?第一人称视角,变成第三人称视角,下方如图
本来丛林打得好好的,也许是楼主的渣渣笔记本,好端端的第一人称视角,突然变成第三人称视角。其实这样玩起来,感觉还蛮新奇的,就感觉玩那3D武侠网游一样,不过,拿上之后,点击鼠标左键,却无法打开瞄准镜,感觉有些可惜。
春节档电影大盘数据对比
有人吃过3种以上,算小编输
您的寒假余额不足,点此...
元宵节到了,我们来一起...
谈谈冯叔叔的恋爱史。
骑了还是吃了?
别怀疑,这就是迪丽热巴。
你家本命上榜没?
可以说连基本的立意都没...
手把手教你成为美食摄影...
安利《大唐荣耀》
风云稻米——特邀微博贴吧...
插画培训,60天入门到插画高手,推荐工作
大都会时代的BUG还水   --楼主你不粉我我就把你挂在尾巴上(๑• . •๑)我的,时尚时尚最时尚,一步两步,一步一步似爪牙,
快复活 不停按空格
我有次刷樱城也是出现这个情况,很不习惯,于是冲怪堆里死了算了,复活后又正常了。。。
作为天使 是时候给你们看下我的翅膀了
你身上有她的香水味
一闻就没我的贵
卡的,死一次就恢复了
留名   --小手一抖,就回复了你,楼楼不要谢,粉我就可了~\(≥▽≤)/~   --来自优衣库客户端 
随便都能卡出来
贴吧热议榜
使用签名档&&
保存至快速回贴

我要回帖

更多关于 第一人称转换第三人称 的文章

 

随机推荐