public void OnObjectSnapped(object sender, SnapDropZoneEventArgs e) { TableData d = (TableData)data.data.GetValue(); VRTK_SnapDropZone dropZone = ((VRTK_SnapDropZone)sender); SceneGameObjectReference sor = new SceneGameObjectReference(e.snappedObject.gameObject.GetComponentInChildren <SceneGameObject>()); if (dropZone.gameObject.name == "slot00") { d.slot00 = sor; } if (dropZone.gameObject.name == "slot01") { d.slot01 = sor; } if (dropZone.gameObject.name == "slot02") { d.slot02 = sor; } if (dropZone.gameObject.name == "slot03") { d.slot03 = sor; } if (dropZone.gameObject.name == "slot04") { d.slot04 = sor; } data.data.SetValue(d); }
public override void HoldItem(SceneGameObject childOfElement, bool instancing = true) { ClosetData closetData = (ClosetData)data.data.GetDefaultValue(); List <SceneGameObjectReference> slots = SlotsList(closetData); //Destroy(childOfElement.GetComponent<Rigidbody>()); childOfElement.gameObject.SetActive(true); if (instancing) { bool stored = false; for (int i = 0; i < slots.Count && !stored; i++) { if (slots[i] == null) { stored = true; slots[i] = new SceneGameObjectReference(childOfElement); } } ListToSlots(ref closetData, slots); data.data.SetDefaultValue(closetData); } else { for (int i = 0; i < slots.Count; i++) { if (slots[i].linkedSGO == childOfElement.data.id) { childOfElement.transform.SetParent(slotPivot[i]); childOfElement.transform.localPosition = Vector3.zero; childOfElement.transform.localRotation = Quaternion.identity; slotPivot[i].gameObject.SetActive(true); return; } } Debug.Log("There is no slot for ?¿" + childOfElement.data.id); childOfElement.gameObject.SetActive(false); } }