|
|
- namespace VRTK.Examples
- {
- using UnityEngine;
-
- public class SnapDropZoneGroup_Switcher : MonoBehaviour
- {
- private VRTK_SnapDropZone cubeZone;
- private VRTK_SnapDropZone sphereZone;
-
- private void Start()
- {
- cubeZone = transform.Find("Cube_SnapDropZone").gameObject.GetComponent<VRTK_SnapDropZone>();
- sphereZone = transform.Find("Sphere_SnapDropZone").GetComponent<VRTK_SnapDropZone>();
-
- cubeZone.ObjectEnteredSnapDropZone += new SnapDropZoneEventHandler(DoCubeZoneSnapped);
- cubeZone.ObjectSnappedToDropZone += new SnapDropZoneEventHandler(DoCubeZoneSnapped);
- cubeZone.ObjectExitedSnapDropZone += new SnapDropZoneEventHandler(DoCubeZoneUnsnapped);
- cubeZone.ObjectUnsnappedFromDropZone += new SnapDropZoneEventHandler(DoCubeZoneUnsnapped);
-
- sphereZone.ObjectEnteredSnapDropZone += new SnapDropZoneEventHandler(DoSphereZoneSnapped);
- sphereZone.ObjectSnappedToDropZone += new SnapDropZoneEventHandler(DoSphereZoneSnapped);
- sphereZone.ObjectExitedSnapDropZone += new SnapDropZoneEventHandler(DoSphereZoneUnsnapped);
- sphereZone.ObjectUnsnappedFromDropZone += new SnapDropZoneEventHandler(DoSphereZoneUnsnapped);
- }
-
- private void DoCubeZoneSnapped(object sender, SnapDropZoneEventArgs e)
- {
- if (sphereZone.GetCurrentSnappedObject() == null)
- {
- sphereZone.gameObject.SetActive(false);
- }
- }
-
- private void DoCubeZoneUnsnapped(object sender, SnapDropZoneEventArgs e)
- {
- if (cubeZone.GetCurrentSnappedObject() == null)
- {
- sphereZone.gameObject.SetActive(true);
- }
- }
-
- private void DoSphereZoneSnapped(object sender, SnapDropZoneEventArgs e)
- {
- if (cubeZone.GetCurrentSnappedObject() == null)
- {
- cubeZone.gameObject.SetActive(false);
- }
- }
-
- private void DoSphereZoneUnsnapped(object sender, SnapDropZoneEventArgs e)
- {
- if (sphereZone.GetCurrentSnappedObject() == null)
- {
- cubeZone.gameObject.SetActive(true);
- }
- }
- }
- }
|