记录VR开发过程中遇到的问题
当前位置 : 首页 > VR培训

【HTC-VIVE】05-创建虚拟角色Player

1、首先搭建简单的环境:

Environment.png

2、创建空物体,命名为Player:

给Palyer 添加 Player 脚本,该脚本是SteamVR种内置的脚本。

AddPlayer.png

刚添加上该脚本,不停的打印如下错误:
Error.png

解决方法:将Player 物体 拖动到 Tarcking Origin Transform 处,便停止报错!
OK.png

这是该脚本的相关属性:

PlayerComponent.png

1、Tracking Origin Transform : 虚拟设备追踪的根节点,即整个虚拟角色 Player
2、Hmd Transforms : 头显设备相机,包括没有Steam VR 时的备用相机
3、Hands:所有的可能的虚拟手柄,包括 没有 Steam VR 时的备用手柄
4、Head Collider : 头部物理碰撞检测器,跟随 玩家的头设位置移动
5、Rig Steam VR :这些对象是在SteamVR可用时启用的物体
6、Rig 2D FallBack :这些对象是在SteamVR不可用时或用户退出VR时启用的
7、Audio Listener : 玩家的音频监听器,让玩家可以听到声音
8、Allow Toggle 2D : 允许切换到2D

3、创建 有 SteamVR 时 的 相关物体组件:

1、身体碰撞检测器 :BodyCollider
2、虚拟头部相机 : VRCamera
3、左右手虚拟手柄 : LeftHand , RightHand
4、在大型虚拟屏幕上显示2D内容 :Overlay
5、处理SteamVR_Camera 渲染 与 相关交互事件管理 :[Steam VR]

BodyCollider :(取消重力,使用 Is Kinematic,高度:1.5 )

BodyCollider.png
BodyCollider 组件:根据实际的玩家的头部,设置该 capsuleCollider 的高度 与 中心位置
using UnityEngine; using System.Collections; //根据实际的玩家的头部,设置该 BodyCollider 的高度 与 中心位置 namespace Valve.VR.InteractionSystem { //------------------------------------------------------------------------- [RequireComponent( typeof( CapsuleCollider ) )] public class BodyCollider : MonoBehaviour { public Transform head; private CapsuleCollider capsuleCollider; //------------------------------------------------- void Awake() { capsuleCollider = GetComponent<CapsuleCollider>(); } //------------------------------------------------- void FixedUpdate() { float distanceFromFloor = Vector3.Dot( head.localPosition, Vector3.up ); capsuleCollider.height = Mathf.Max( capsuleCollider.radius, distanceFromFloor ); transform.localPosition = head.localPosition - 0.5f * distanceFromFloor * Vector3.up; } } } 
VRCamera:
VRCamera.png
Overlay:
Overlay.png
  • Overlay Render Texture:


    OverLay Render Texture.png
[SteamVR]:
[SteamVR].png

LeftHand:

1、调整左右手的位置,X:0.25 ,Y:1
2、添加 Hand 与 SteamVR_Behaviour_Pose 脚本
3、对左右手进行简单的设置,都暂时取消 Use Hover Sphere,避免一直报红的错误

LeftHandBasic.png

RightHandBasic.png

4、创建 没有 SteamVR 时的 相关物体组件:

1、备用相机 :FallBackCamera
2、备用手柄 :FallBackHand

FallBackCamera:
FallBackCamera
FallBackHand :
FallBackHand.png
  • 备用手指示器:


    Indictor.png

5、AudioListener:(FollwHead)

AudioListener.png

6、HeadCollider:

HeadCollider

到此Player 脚本上所需的组件创建完成,拖曳上即可:

PlayerOK.png

作者:lijianfex
链接:https://www.jianshu.com/p/e24cc1520511
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

栏目列表