当前位置:   article > 正文

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

desktips

1、在Desk下新建一个子物体Canvas,重命名为DeskUICanvas并重新设置大小、位置和模式


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


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


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


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

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ObjectTips : MonoBehaviour {
  5. private GameObject player; //就是CameraRig摄像机
  6. private Vector3 targetPos; //所要跟踪的目标
  7. void Start () {
  8. player = GameObject.FindGameObjectWithTag("Player") ; //查找到摄像机
  9. targetPos = new Vector3(0,transform.position.y,0); //初始化目标位置
  10. }
  11. void Update () {
  12. //更新目标位置的x和z
  13. targetPos.x = player.transform.position.x;
  14. targetPos.z = player.transform.position.z;
  15. //跟踪目标位置
  16. transform.LookAt(targetPos);
  17. }
  18. }
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添加的代码

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


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


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

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



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/146009
推荐阅读
相关标签
  

闽ICP备14008679号