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);
    }
Exemplo n.º 2
0
    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);
        }
    }