Beispiel #1
0
    void GetHV()
    {
        Vector3 nextStep;

        if (path [0] != null)
        {
            if (aStar.IsOnThisNode(transform.position, path [0]))
            {
                StoreNode(path[0]);
                path.RemoveAt(0);
                currentNodeTimeSpent = maximumTimeSpentByNode;
                if (path.Count > 0)
                {
                    nextStep   = path [0].position;
                    horizontal = nextStep.x - transform.position.x;
                    vertical   = nextStep.z - transform.position.z;
                }
                else
                {
                    horizontal = 0;
                    vertical   = 0;
                }
            }
            else
            {
                if (aStar.IsOnThisNode(transform.position, previousNode))
                {
                    currentNodeTimeSpent -= Time.deltaTime;
                }
                if (IsAvatarBeBlocked())
                {
                    OpeningClosingDoor openingClosingDoorScript = doorNextToAvatar();
                    if (openingClosingDoorScript == null)
                    {
                        Node newNode = aStar.GetReplacementNode(previousNode, path [0]);
                        currentNodeTimeSpent = maximumTimeSpentByNode;
                        path [0]             = newNode;
                        aStar.SetPath(path);
                    }
                    else
                    {
                        openingClosingDoorScript.PlayAnim();
                        wait = true;
                        currentNodeTimeSpent = maximumTimeSpentByNode;
                    }
                }
                nextStep = path [0].position;

                horizontal = nextStep.x - transform.position.x;
                vertical   = nextStep.z - transform.position.z;
            }
            isRunning = false;
            isMoving  = Mathf.Abs(horizontal) > 0.1 || Mathf.Abs(vertical) > 0.1;
        }
    }
Beispiel #2
0
    // Contient l'ensemble des fonctions MonoBehavior (Awake)
    #region MonoBehavior

    void Awake()
    {
        UI_Choice uiChoice = GameObject.FindWithTag("UI_Manager").GetComponent <UI_Choice>();

        if (objectName == null)
        {
            objectName = this.name;
        }

        switch (myType)
        {
        case Type.Door:
        {
            doorScript    = GetComponent <OpeningClosingDoor>();
            contactSensor = GetComponent <DDContactSensor> ();
            myState       = initialState;
            break;
        }

        case Type.Drawer:
        {
            drawerScript  = GetComponentInParent <OpeningClosingDrawer>();
            contactSensor = GetComponent <DDContactSensor> ();
            myState       = initialState;
            break;
        }

        case Type.Electronic:
        {
            electronicScript = GetComponent <ElectronicDevice>();
            myState          = initialState;
            break;
        }

        case Type.Light:
        {
            electronicScript = GetComponent <ElectronicDevice>();
            myState          = initialState;
            break;
        }

        case Type.PickUp:
        {
            characterTransform = GameObject.FindWithTag("Player").GetComponent <Transform>();
            rb      = GetComponent <Rigidbody>();
            myState = initialState;
            break;
        }
        }
    }
Beispiel #3
0
    public void AddWalkedOverObject(GameObject walkedOverObjectFx, string tag)
    {
        if (walkedOverObjectFx != null)
        {
            guiShow = true;

            switch (walkedOverObjectFx.tag)
            {
            case "PickUp":
            {
                this.walkedOverObject = walkedOverObjectFx;
                break;
            }

            case "Door":
            {
                this.walkedOverObject = walkedOverObjectFx;
                doorInteraction       = walkedOverObject.GetComponent <OpeningClosingDoor>();
                break;
            }

            case "Light":
            {
                this.walkedOverObject = walkedOverObjectFx;
                break;
            }

            case "Electronic":
            {
                this.walkedOverObject = walkedOverObjectFx;
                break;
            }

            case "Drawer":
            {
                this.walkedOverObject = walkedOverObjectFx;
                drawerInteraction     = walkedOverObject.GetComponentInParent <OpeningClosingDrawer>();
                break;
            }

            case "Test-RFID":
            {
                this.walkedOverObject = walkedOverObjectFx;
                break;
            }

            case "Test-UI":
            {
                this.walkedOverObject = walkedOverObjectFx;
                walkedOverObject.GetComponent <UI_Object>().AddUI();
                break;
            }
            }
        }

        else
        {
            isPick           = false;
            guiShow          = false;
            walkedOverObject = null;
        }
    }