private Base3dInterface GetClickObj(Ray ray, TriggerMethod triggerMethod = TriggerMethod.Mouse) { Base3dInterface base3D = null; RaycastHit hit; if (Physics.Raycast(ray, out hit, rayDistance, mask)) { if (base3dDict.ContainsKey(hit.collider.gameObject)) { base3D = base3dDict[hit.collider.gameObject]; if (!base3D.RaycastTarget) { return(null); } switch (base3D.statusEnum3d) { case StatusEnum3d.Highlight: if (clickCheck.CheckTiggherDown(triggerMethod)) { base3D.OnPresseDown(); } break; case StatusEnum3d.Normal: if (clickCheck.CheckTiggherDown(triggerMethod)) { base3D.OnPresseDown(); } else { base3D.OnHighlight(); } break; case StatusEnum3d.Pressed: if (clickCheck.CheckTiggherUp(triggerMethod)) { base3D.OnPresseUp(); } break; } } } return(base3D); }
private void CheckClick() { Base3dInterface base3Dc = null; Base3dInterface base3Dr = null; Base3dInterface base3Dl = null; switch (triggerMethod) { case TriggerMethod.Mouse: base3Dc = GetMouseClick(); break; case TriggerMethod.VR_Both: base3Dl = GetRightHandClick(); base3Dr = GetLeftHandClick(); break; case TriggerMethod.VR_Left: base3Dl = GetLeftHandClick(); break; case TriggerMethod.VR_Right: base3Dr = GetRightHandClick(); break; } foreach (var base3dObj in base3dDict.Values) { if (base3dObj != base3Dl && base3dObj != base3Dr && base3dObj != base3Dc) { switch (base3dObj.statusEnum3d) { case StatusEnum3d.Highlight: base3dObj.OnNormal(); break; case StatusEnum3d.Pressed: base3dObj.OnNormal(); break; } } } }