移动VR一般受到一些设备的限制,操作方式比较有限。现在需要添加移动VR专属的角色控制脚本。运行游戏,检测移动VR的编辑器模拟模式。角色可以顺利跟随导航标识移动到目标位置。图9-121确定Mouse Control是否勾选图9-122检测移动VR的编辑器模拟模式在VRUIPanel中有这么一段代码:主要就是为了Cardboard而实现的Cardboard输入操作就是通过这个Input.GetTouch来实现的。......
2023-10-17
先选择Assets→Models→Characters选项,将主角Player拖到场景中(见图8-148)。
图8-148 主向Player加入场景
给主角添加Rigidbody组件(见图8-149)。
图8-149 添加组件
图8-150 主角脚本
在Assets中新建一个文件夹Scripts专门用来存放脚本语言(当然你也可以任意命名),在Scripts文件夹中新建Player文件夹专门存放主角的脚本,接着新建一个C#脚本(见图8-150)。
(1)开始写主角移动的代码(见图8-151)。
图8-151 主角移动代码
将代码拖拽到主角的面板上,单击运行。
(2)发现主角掉下去了,这是个严重的问题。下面是解决这个问题的步骤:(www.chuimin.cn)
①给主角加上CapsuleCollider组件(见图8-152)。
图8-152 给主角添加CapsuleCollider组件
②调整大小,差不多框住主角(见图8-153)。
图8-153 调整大小
③给地板加上BoxCollider。
④现在单击运行键,按上下左右或WASD可以看到主角滑动起来了(见图8-154)。
如果遇到主角倒地情况(见图8-155)。小技巧:单击Rigidbody的Constraints按钮,锁住旋转轴XZ(见图8-156)。
图8-154 给地板添加BoxCollider
图8-155 主角倒地
图8-156 锁住旋转轴XZ
有关虚拟现实理论基础与应用开发实践的文章
移动VR一般受到一些设备的限制,操作方式比较有限。现在需要添加移动VR专属的角色控制脚本。运行游戏,检测移动VR的编辑器模拟模式。角色可以顺利跟随导航标识移动到目标位置。图9-121确定Mouse Control是否勾选图9-122检测移动VR的编辑器模拟模式在VRUIPanel中有这么一段代码:主要就是为了Cardboard而实现的Cardboard输入操作就是通过这个Input.GetTouch来实现的。......
2023-10-17
图9-23新建Player_FullControl脚本为了方便开发,先使用键盘上的WASD来调试角色的移动控制,再之后可以把VR操作接入。设置What Is Ground为Ground。现在发现角色可以移动、跳跃,但是角色没有相关动画动作,而且角色还可以跳出平台,这些会在后面章节的内容进一步实现。......
2023-10-17
尝试添加一个刚体到刚创建的物体上。选择该物体并从菜单中选择Component→physics→Rigidbody。它们使用一个粒子发射器,粒子动画和粒子渲染器来创建一组移动的粒子。音频剪辑是一个引用属性。移除组件如果你想移除一个组件,在检视面板的头部使用option-或右击然后选择移除组件。例如,如果你想访问变换组件的变换功能,你只需要使用transform.Translate()或gameObject.transform.Translate()。使用GetComponent()有许多组件不能成为一个游戏物体类的成员。通过调用GetComponent并存储一个引用到结果中。......
2023-10-17
图8-177CameraFollow脚本offset是相机初始时与主角之间的距离,speed是相机移动的速度,target设置为public,待会直接拖动主角挂到这里。Lerp是插值的概念,简单来说就是使相机平滑地移动而不是瞬间移位。图8-178脚本挂到相机将游戏场景中的物体加入BoxColider。图8-179加入BoxColider单击Window→Navigation自动寻路组件,Unity只对静止的物体计算,选中所有的场景物体,选择static项。图8-183加入NavMeshAgent组件图8-184添加Player标签图8-185怪物出生点设置图8-186新建脚本EnemyManager将这个脚本挂在一个空物体上。......
2023-10-17
本小节的目的是制作Tank的生命条,也就是如图8-106所示的形式,有一圈绿色生命条包围在坦克的周围。图8-115TankExplosion预件设置完成以上改动后,接下来要思考一个问题,坦克的生命条UI界面有了,但还需要让它动态地减少,即在坦克受到伤害的时候会扣除生命值,那么该怎么实现呢?......
2023-10-17
首先创建一个文件夹Animation用来存放GameController文件,在文件夹内右击新建一个Animator Controller。图8-163发现新Tab将PlayerController放到主角身上的Animator组件里面的Controller。图8-173加入函数到Update()图8-174主角移动,播放Move动画又一个bug出现,主角停下来时,还是播放Move动画,因为刚刚的Animator并没有设计从Move状态转为Idle状态的条件。图8-175主动停止,仍在播放Move动画isMoving设置false,再运行游戏,主角就正常的Move和Idle了。......
2023-10-17
Unity引擎的更新迭代速度很快,从2017年开始每个季度都会有次大版本的更新,比如2017.1,2017.2等,至今正式的大版本升级到了2018.2版本。Unity LTS版本将从TECH版本每年最后一个版本开始,持续支持二年的时间。如果读者实际准备发布上线的项目,为了稳定起见,建议使用LTS版本,即2017.4最新的版本,以保证项目最大限度地稳定运行。如果发现没有红色报错信息,基本可以确定大部分版本升级是成功的。......
2023-10-17
硬件层在渲染流水线中最为复杂,也最为重要。图2-2固定渲染流水线的几个阶段图2-3可编程渲染流水线硬件层对比上面的两个图我们发现,在可编程渲染流水线中,固定渲染流水线中的顶点变换与片段纹理映射和着色被分离出来,作为可编程顶点处理器与可编程片段处理器。裁剪这部分不可见物体的过程称为视域体裁剪。视域体是一个3D的梯形,我们要在3D的空间里对顶点进行剔除,是一件非常难以实现的事,所以才将顶点变换到投影平面上。......
2023-10-17
相关推荐