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轴上没有任何旋转
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轴上没有任何旋转
相关文章推荐
- HTC Vive VR房产项目开发一(手柄提示+户型图)
- HTC Vive VR房产项目开发二(开关门)
- HTC Vive VR房产项目开发五(通过材质列表切换地板材质)
- HTC Vive VR房产项目开发四(切换家具样式)
- Htc Vive Sdk(OpenVR),Unity3d 开发,手柄射线
- [HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)
- HTC Vive VR Unity 开发入门
- Htc Vive Sdk(OpenVR),Unity3d 开发,UGUI界面响应
- 【VR开发】htc vive+unity 3D 简单保龄球游戏
- Htc Vive Sdk(OpenVR),Unity3d 开发,手柄射线
- Htc Vive Sdk(OpenVR),Unity3d 开发,UGUI响应代码分析篇
- 在webForm项目加添加asp.net mvc项目同时开发
- 在项目中添加MVC源码进行开发、调试
- 使用Spring Boot开发Web项目(二)之添加HTTPS支持
- 在iOS开发中,给项目添加新的.framework
- iOS 开发 向项目中添加 pch 文件
- VR游戏开发干货教程:如何创建一个VR项目
- 在一个软件开发项目中进行实际日程安排的十二点提示(转)
- 使用环信开发项目遇到错误提示 configure your build for VectorDrawableCompat
- CriminalIntent项目开发笔记(一)----动态添加Fragment