在场景中一个物体上挂上之前的说明书,实现当控制器碰到物体并扣下扳机展示说明书的功能。
我是利用VRTK中的VRTK_InteractableObject实现的。
具体可以看腾讯开发社区中的解释。
1
|
public
virtual
void
StartUsing()
|
·
Parameters
·
GameObject - 正在使用当前物体的游戏对象(例如手柄).
·
Returns
·
none
StartUsing方法会在物体开始被使用时被调用,它会
1、发送事件将传入的currentGrabbingObject作为参数,回调委托给InteractableObjectUsed的方法
2、设置当前使用物体的usingObject为传入的游戏对象
同样可以被子类重写,根据需要实现更多功能。
我们可以创建个新脚本,来重写这个函数,就可以实现功能。
book_interact.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; using VRTK; using VRTK.Highlighters; public class Book_interect : VRTK_InteractableObject { public GameObject book; private enum State { ON,OFF } private State state; // Use this for initialization void Start () { state = State.OFF; } // Update is called once per frame void Update () { } public override void StartUsing(GameObject currentUsingObject) { base.StartUsing(currentUsingObject); switch (state) { case State.ON: { book.gameObject.SetActive (true); state = State.OFF; } break; case State.OFF: { book.gameObject.SetActive (false); state = State.ON; } break; } } }
别忘了勾选脚本中的 Is Usable