您的位置:首页 > 其它

HTC Vive VR房产项目开发三(添加物体提示)

2017-07-26 23:59 337 查看
1、在Desk下新建一个子物体Canvas,重命名为DeskUICanvas并重新设置大小、位置和模式



2、在DeskTips下创建一个子物体Image,重命名为DeskTips,并设置大小、缩放并添加图片源



3、在DeskTips下创建一个Text,设置文字大小和位置



4、在DeskUICanvas下创建一个Image,设置大小和Source Image,为提示下的把手



5、通过代码创建跟踪的脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjectTips : MonoBehaviour {

private GameObject player; //就是CameraRig摄像机
private Vector3 targetPos; //所要跟踪的目标

void Start () {
player = GameObject.FindGameObjectWithTag("Player") ; //查找到摄像机
targetPos = new Vector3(0,transform.position.y,0); //初始化目标位置

}

void Update () {

//更新目标位置的x和z

targetPos.x = player.transform.position.x;
targetPos.z = player.transform.position.z;
//跟踪目标位置
transform.LookAt(targetPos);

}
}
6、将脚本挂载到canvas上



7、运行后的结果

在门口时看到的提示方向



我进到室内时,提示面向我



我站在屋内各个方向时提示的朝向







我给窗帘换了一个颜色



房子周围加上了篱笆,挺丑的,但是我总算拥有了自己的院子,总算像一个家了





远看窗帘的颜色也还好,没那么丑





注:

1、参考资料:http://edu.manew.com/course/344/learn#lesson/5753

遇到的问题

2、给VRTK_SDKSetup设置Tag为Player,但是运行后报“NullReferenceException: Object reference not set to an instance of an object”空指针异常。

原因:按Ctrl+S进行保存的时候,VRTK_SDK被隐藏,就找不到该物体了



解决办法:如果是在低版本的VRTK中,在VRTK_SDKSetup中的unload事件中被禁用掉了,取消注释该句就可以了



但是在最新的版本中,注释掉该句不管用了,也没找的解决办法。给头盔添加tag的目的是让物体提示总是面向头盔的方向,但是现在头盔总是自动隐藏,就把tag添加到了手柄上,手柄和头盔距离不是很远


3、物体设置lookat后朝向不正确

设置物体在z轴方向是正确朝向的



给canvas添加的代码

public class ObjectTips : MonoBehaviour {
private GameObject player; //就是CameraRig摄像机
private Vector3 targetPos; //所要跟踪的目标
  void Start () {
        player = GameObject.FindGameObjectWithTag("Player") ; //查找到摄像机
        targetPos = new Vector3(0,transform.position.y,0); //初始化目标位置
}
void Update () {
    //更新目标位置的x和z 
      targetPos.x = player.transform.position.x;
       targetPos.z = player.transform.position.z; //跟踪目标位置
       transform.LookAt(targetPos);
} }

运行后的结果,可以跟着旋转,但是总是平躺着



原因:容器在y轴旋转了90度,需要保证canvas在任意轴向上没有旋转

解决办法:不要看静态的scene中物体是否设置正确,而是要保证在z轴上没有任何旋转

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: