Пример #1
0
        public static void UpdateStateFixZone(FixZone fixZone)
        {
            float xPositionTeleport = fixZone.GameObjectFixZone.transform.position.x;
            float zPositionTeleport = fixZone.GameObjectFixZone.transform.position.z;

            float xPositionAvatar;
            float zPositionAvatar;

            float error = 1f;

            GameObject _whoTaken = null;

            for (int i = 0; i < DamagedBotBehavior.Avatars.Length; i++)
            {
                xPositionAvatar = DamagedBotBehavior.Avatars[i].GameObjectAvatar.transform.position.x;
                zPositionAvatar = DamagedBotBehavior.Avatars[i].GameObjectAvatar.transform.position.z;

                if (((xPositionTeleport - error) < xPositionAvatar && xPositionAvatar < (xPositionTeleport + error)) &&
                    ((zPositionTeleport - error) < zPositionAvatar && zPositionAvatar < (zPositionTeleport + error)))
                {
                    _whoTaken = DamagedBotBehavior.Avatars[i].GameObjectAvatar;
                    break;
                }
                else
                {
                    _whoTaken = null;
                }
            }

            fixZone.WhomTaken = _whoTaken;
        }
Пример #2
0
        public void UpdateStateFixZone(GameObject _actorGameObject, FixZone fixZone)
        {
            Actor[] actorsInScene = _actorGameObject.GetComponent <AI_behaviour>().actors;

            /*Used to calculate area
             * near to interactive point
             */
            float xPositionTeleport = fixZone.gameObjectFixZone.transform.position.x;
            float zPositionTeleport = fixZone.gameObjectFixZone.transform.position.z;

            float xPositionAvatar;
            float zPositionAvatar;

            float error = 1f;

            GameObject _whoTaken = null;

            //foreach actor
            for (int i = 0; i < actorsInScene.Length; i++)
            {
                //Get actor's position
                xPositionAvatar = actorsInScene[i].actorGameObject.transform.position.x;
                zPositionAvatar = actorsInScene[i].actorGameObject.transform.position.z;

                //if close to a interactive point
                if (((xPositionTeleport - error) < xPositionAvatar && xPositionAvatar < (xPositionTeleport + error)) &&
                    ((zPositionTeleport - error) < zPositionAvatar && zPositionAvatar < (zPositionTeleport + error)))
                {
                    //store this actor as active in interactive point and break cycle
                    _whoTaken = actorsInScene[i].actorGameObject;
                    break;
                }
                else
                {
                    //actor is not close to interactive point
                    _whoTaken = null;
                }
            }

            //store variable
            fixZone.whoTaken = _whoTaken;
        }