Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        GUILayout.Space(10);

        DoorPanel door = (DoorPanel)target;

        if (!door.Opened)
        {
            if (GUILayout.Button("Open Door"))
            {
                ((DoorPanel)target).OpenDoor();
            }
        }
        else
        {
            if (GUILayout.Button("Close Door"))
            {
                ((DoorPanel)target).OpenDoor();
            }
        }

        if (GUILayout.Button("Update Opening Door Settings"))
        {
            ((DoorPanel)target).UpdateOpeningDirection();
        }

        if (GUILayout.Button("Repeat to Doors of same type"))
        {
            Debug.Log("TODO....");
        }
    }
Esempio n. 2
0
    IEnumerator openPanel(DoorPanel p)
    {
        if (!isClosing)
        {
            isOpening = true;
            Vector2Int dir = enum2dir(p.OpenDirection);
            while (p.MaxDistance - Vector3.Distance(p.Panel.transform.position, p.startingPosition) > DISTANCE_OFFSET && isOpening)
            {
                p.Panel.transform.Translate(new Vector3(p.OpenSpeed * dir.x, p.OpenSpeed * dir.y));
                yield return(0);
            }

            print("Finished opening");
            isOpening = false;
            yield return(null);
        }
    }
    public void UpdateDoorElement(GameObject obj)
    {
        ModelObject modelObject = obj.GetComponent <ModelObject>();

        if (modelObject.Name.Contains("Double") || modelObject.Name.Contains("Dbl"))
        {
            return;
        }



        int frameCounting = 0;

        if (modelObject.HasFrame())
        {
            GameObject frame = new GameObject("Door Frame [" + modelObject.Id + "]");
            frame.transform.parent        = modelObject.transform;
            frame.transform.localScale    = new Vector3(1, 1, 1);
            frame.transform.localPosition = new Vector3(0, 0, 0);
            frame.transform.localRotation = new Quaternion();
            frame.AddComponent <MeshFilter>();
            frame.AddComponent <MeshCollider>();
            frame.AddComponent <MeshRenderer>();
            AddFrame(modelObject, frame);
            frameCounting = 1;
        }



        GameObject panel = new GameObject("Door Panel [" + modelObject.Id + "]");

        panel.transform.parent        = modelObject.transform;
        panel.transform.localScale    = new Vector3(1, 1, 1);
        panel.transform.localPosition = new Vector3(0, 0, 0);
        panel.transform.localRotation = new Quaternion();

        BoxCollider box = panel.GetComponent <BoxCollider> ();

        if (box == null)
        {
            box = panel.AddComponent <BoxCollider> ();
        }
        box.isTrigger = true;
        box.size      = new Vector3(1, 1, 2);
        //box.center = new Vector3 (0, 0, 0);

        for (int i = 0 + frameCounting; i < modelObject.GetComponent <MeshFilter>().sharedMesh.subMeshCount; i++)
        {
            AddComponentDoorPanel(modelObject, panel, i);
        }

        DoorPanel doorPanel = panel.GetComponent <DoorPanel>();

        if (doorPanel == null)
        {
            doorPanel = panel.AddComponent <DoorPanel>();
        }


        modelObject.GetComponent <MeshRenderer>().enabled = false;
        modelObject.GetComponent <MeshCollider>().enabled = false;

        doorPanel.UpdateOpeningDirection();

        if (panel.GetComponent <DoorScript> () == null)
        {
            panel.AddComponent <DoorScript> ();
        }
    }