Skip to content

Commit 69caf01

Browse files
author
ChengNan Yang
committed
Fix always new GameObject for Wave render model
* This case will only happen when user turns on/off controllers
1 parent b56ca33 commit 69caf01

File tree

1 file changed

+29
-21
lines changed

1 file changed

+29
-21
lines changed

Assets/HTC.UnityPlugin/VRModule/Modules/WaveVRModule.cs

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,23 @@ public override void UpdateRenderModel()
7979
{
8080
UpdateDefaultRenderModel(false);
8181

82-
m_modelObj = new GameObject("Model");
83-
m_modelObj.SetActive(false);
84-
m_modelObj.transform.SetParent(hook.transform, false);
82+
if (m_modelObj == null)
83+
{
84+
m_modelObj = new GameObject("Model");
85+
m_modelObj.transform.SetParent(hook.transform, false);
86+
m_modelObj.SetActive(false);
8587
#if VIU_WAVEXR_ESSENCE_CONTROLLER_MODEL
8688
#if VIU_WAVE_XRSDK_3_99_31_OR_NEWER
87-
m_modelObj.transform.parent.gameObject.AddComponent<PoseMode>();
89+
m_modelObj.transform.parent.gameObject.AddComponent<PoseMode>();
8890
#endif
89-
m_modelObj.AddComponent<Wave.Essence.Controller.Model.RenderModel>();
90-
m_modelObj.AddComponent<Wave.Essence.Controller.Model.ButtonEffect>();
91+
m_modelObj.AddComponent<Wave.Essence.Controller.Model.RenderModel>();
92+
m_modelObj.AddComponent<Wave.Essence.Controller.Model.ButtonEffect>();
9193
#elif VIU_WAVEXR_ESSENCE_RENDERMODEL
92-
m_modelObj.AddComponent<Wave.Essence.Controller.RenderModel>();
93-
m_modelObj.AddComponent<Wave.Essence.Controller.ButtonEffect>();
94+
m_modelObj.AddComponent<Wave.Essence.Controller.RenderModel>();
95+
m_modelObj.AddComponent<Wave.Essence.Controller.ButtonEffect>();
9496
#endif
97+
}
98+
9599
m_modelObj.SetActive(true);
96100
}
97101
}
@@ -112,24 +116,28 @@ public override void UpdateRenderModel()
112116
{
113117
UpdateDefaultRenderModel(false);
114118

115-
m_modelObj = new GameObject("Model");
116-
m_modelObj.SetActive(false);
117-
m_modelObj.transform.SetParent(hook.transform, false);
119+
if (m_modelObj == null)
120+
{
121+
m_modelObj = new GameObject("Model");
122+
m_modelObj.transform.SetParent(hook.transform, false);
123+
m_modelObj.SetActive(false);
118124
#if VIU_WAVEXR_ESSENCE_CONTROLLER_MODEL
119125
#if VIU_WAVE_XRSDK_3_99_31_OR_NEWER
120-
var pm = m_modelObj.transform.parent.gameObject.AddComponent<PoseMode>();
121-
pm.WhichHand = XR_Hand.NonDominant;
126+
var pm = m_modelObj.transform.parent.gameObject.AddComponent<PoseMode>();
127+
pm.WhichHand = XR_Hand.NonDominant;
122128
#endif
123-
var rm = m_modelObj.AddComponent<Wave.Essence.Controller.Model.RenderModel>();
124-
rm.WhichHand = XR_Hand.NonDominant;
125-
var be = m_modelObj.AddComponent<Wave.Essence.Controller.Model.ButtonEffect>();
126-
be.HandType = XR_Hand.NonDominant;
129+
var rm = m_modelObj.AddComponent<Wave.Essence.Controller.Model.RenderModel>();
130+
rm.WhichHand = XR_Hand.NonDominant;
131+
var be = m_modelObj.AddComponent<Wave.Essence.Controller.Model.ButtonEffect>();
132+
be.HandType = XR_Hand.NonDominant;
127133
#elif VIU_WAVEXR_ESSENCE_RENDERMODEL
128-
var rm = m_modelObj.AddComponent<Wave.Essence.Controller.RenderModel>();
129-
rm.WhichHand = XR_Hand.NonDominant;
130-
var be = m_modelObj.AddComponent<Wave.Essence.Controller.ButtonEffect>();
131-
be.HandType = XR_Hand.NonDominant;
134+
var rm = m_modelObj.AddComponent<Wave.Essence.Controller.RenderModel>();
135+
rm.WhichHand = XR_Hand.NonDominant;
136+
var be = m_modelObj.AddComponent<Wave.Essence.Controller.ButtonEffect>();
137+
be.HandType = XR_Hand.NonDominant;
132138
#endif
139+
}
140+
133141
m_modelObj.SetActive(true);
134142
}
135143
}

0 commit comments

Comments
 (0)