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; } }
// 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; } } }
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; } }