一、当我从场景A跳转到场景B([VRTK_SDKManager]设置为DontDestroyOnLoad),然后按下触摸板键时,无法移动,错误提示信息如下:
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
VRTK.VRTK_BasePointerRenderer.GetOrigin (Boolean smoothed) (at Assets/VRTK/Source/Scripts/Pointers/PointerRenderers/VRTK_BasePointerRenderer.cs:402)
VRTK.VRTK_BezierPointerRenderer.ProjectForwardBeam () (at Assets/VRTK/Source/Scripts/Pointers/PointerRenderers/VRTK_BezierPointerRenderer.cs:209)
VRTK.VRTK_BezierPointerRenderer.UpdateRenderer () (at Assets/VRTK/Source/Scripts/Pointers/PointerRenderers/VRTK_BezierPointerRenderer.cs:79)
VRTK.VRTK_Pointer.HandleEnabledPointer () (at Assets/VRTK/Source/Scripts/Pointers/VRTK_Pointer.cs:375)
VRTK.VRTK_Pointer.Update () (at Assets/VRTK/Source/Scripts/Pointers/VRTK_Pointer.cs:337)
二、错误分析
双击后来到这里:
然后我发现,在场景A里:
但是加载到场景B后,左手柄的信息、右手柄的信息就丢失了,在这里我没有仔细追究VRTK里面的源代码,如果要深究的话那就跟脚本VRTK_Pointer、VRTK_TransformFollow有关系。
三、解决办法
1.在场景A跳转到场景B之前,先把[ControllerScripts]下的左右手柄控制 LeftController、RightController给隐藏了;
2.当跳转到场景B之后,需要立马把两个手柄给初始化出来,如此便不会报错了,手柄瞬移也能正常使用了。