Ejemplo n.º 1
0
        /// <summary>Manually force the trigger to test if the target(s) is inside it</summary>
        public void TestTrigger()
        {
            var triggerPos = ProCamera2D.TargetsMidPoint;

            //   Debug.LogError("trigger pos:" + triggerPos);
            if (!UseTargetsMidPoint && TriggerTarget != null)
            {
                triggerPos = TriggerTarget.position;
            }

            if (TriggerShape == TriggerShape.RECTANGLE &&
                Utils.IsInsideRectangle(
                    Vector3H(_transform.position),
                    Vector3V(_transform.position),
                    Vector3H(_transform.localScale),
                    Vector3V(_transform.localScale),
                    Vector3H(triggerPos),
                    Vector3V(triggerPos)))
            {
                if (!_insideTrigger)
                {
                    EnteredTrigger();
                }
            }
            else if (TriggerShape == TriggerShape.CIRCLE &&
                     Utils.IsInsideCircle(
                         Vector3H(_transform.position),
                         Vector3V(_transform.position),
                         (Vector3H(_transform.localScale) + Vector3V(_transform.localScale)) * .25f,
                         Vector3H(triggerPos),
                         Vector3V(triggerPos)))
            {
                if (!_insideTrigger)
                {
                    EnteredTrigger();
                }
            }
            else
            {
                if (_insideTrigger)
                {
                    ExitedTrigger();
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Returns what room the target currently is. Useful for when you set the AutomaticRoomActivation to false
        /// </summary>
        /// <returns>The current room</returns>
        /// <param name="targetPos">Target position</param>
        public int ComputeCurrentRoom(Vector3 targetPos)
        {
            int roomToEnter = -1;

            for (int i = 0; i < Rooms.Count; i++)
            {
                if (Utils.IsInsideRectangle(
                        Rooms[i].Dimensions.x + (UseRelativePosition ? _transform.position.x : 0),
                        Rooms[i].Dimensions.y + (UseRelativePosition ? _transform.position.y : 0),
                        Rooms[i].Dimensions.width,
                        Rooms[i].Dimensions.height,
                        Vector3H(targetPos),
                        Vector3V(targetPos)))
                {
                    roomToEnter = i;
                }
            }

            return(roomToEnter);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Returns what room the target currently is. Useful for when you set the AutomaticRoomActivation to false
        /// </summary>
        /// <returns>The current room</returns>
        /// <param name="targetPos">Target position</param>
        public int ComputeCurrentRoom(Vector3 targetPos)
        {
            int roomToEnter = -1;

            for (int i = 0; i < Rooms.Count; i++)
            {
                if (Utils.IsInsideRectangle(
                        Rooms[i].Dimensions.x,
                        Rooms[i].Dimensions.y,
                        Rooms[i].Dimensions.width,
                        Rooms[i].Dimensions.height,
                        Vector3H(targetPos),
                        Vector3V(targetPos)))
                {
                    roomToEnter = i;
                }
            }

            return(roomToEnter);
        }