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.pngBodyCollider 组件:根据实际的玩家的头部,设置该 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.pngOverlay:
Overlay.png
Overlay Render Texture:
OverLay Render Texture.png[SteamVR]:
[SteamVR].pngLeftHand:
1、调整左右手的位置,X:0.25 ,Y:1
2、添加 Hand 与 SteamVR_Behaviour_Pose 脚本
3、对左右手进行简单的设置,都暂时取消 Use Hover Sphere,避免一直报红的错误
LeftHandBasic.png
RightHandBasic.png
4、创建 没有 SteamVR 时的 相关物体组件:
1、备用相机 :FallBackCamera
2、备用手柄 :FallBackHandFallBackCamera:
FallBackCameraFallBackHand :
FallBackHand.png
备用手指示器:
Indictor.png
5、AudioListener:(FollwHead)
AudioListener.png
6、HeadCollider:
HeadCollider
到此Player 脚本上所需的组件创建完成,拖曳上即可:
PlayerOK.png