Beispiel #1
0
    public void patrolling(GameObject patrol)
    {
        Vector3      patrollCenter = new Vector3(patrol.GetComponent <PatrolData>().rangeX + 10, 0, patrol.GetComponent <PatrolData>().rangeZ + 10);
        PatrolAction action        = PatrolAction.getSSAction(patrollCenter);

        this.RunAction(patrol, action, this);
    }
Beispiel #2
0
    public static PatrolAction GetSSAction(GameObject player)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.player = player;
        return(action);
    }
Beispiel #3
0
    private PatrolData data;                    // 巡逻兵的数据

    public static PatrolAction GetAction(Vector3 location)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.pos_x = location.x;
        action.pos_z = location.z;
        return(action);
    }
Beispiel #4
0
    public static PatrolAction getAction(Vector3 direction, float speed)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.direction = direction;
        action.speed     = speed;
        return(action);
    }
    public static PatrolAction GetAction(Vector3 pos)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.x = pos.x;
        action.z = pos.z;
        return(action);
    }
    //private Vector3 towards = new Vector3(0,0,0);

    public static PatrolAction getSSAction(Vector3 curLoc)
    {
        PatrolAction action = ScriptableObject.CreateInstance <PatrolAction>();

        action.posX       = curLoc.x;
        action.posZ       = curLoc.z;
        action.stepLength = Random.Range(14, 20);
        return(action);
    }
 // Use this for initialization
 protected void Start()
 {
     SceneController = (FirstController)SSDirector.GetInstance().CurrentSceneController;
     foreach (GameObject i in SceneController.Patrols)
     {
         action = PatrolAction.GetSSAction();
         this.RunAction(i, action, this);
     }
 }
    public static PatrolAction getSSAction(Vector3 location)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.posX       = location.x;
        action.posZ       = location.z;
        action.moveLength = UnityEngine.Random.Range(4, 7);
        return(action);
    }
Beispiel #9
0
    public static PatrolAction GetAction(Vector3 location)
    {
        PatrolAction action = CreateInstance <PatrolAction>();

        action.distination = location;

        action.speed = Random.Range(0.8f, 1.8f);
        return(action);
    }
Beispiel #10
0
    protected new void Start()
    {
        sceneController = Director.getInstance().currentSceneController as FirstSceneController;
        sceneController.patrolActionManager = this;
        player = sceneController.getPlayer();

        patrolAction = PatrolAction.getAction(new Vector3(Random.Range(-1, 1f), Random.Range(-1, 1f)), speed);
        catchAction  = CatchAction.getAction(player, speed);
    }
 public void SSActionEvent(SSAction source, int intParam = 0, GameObject objectParam = null)
 {
     if (intParam == 0)
     {
         action = PatrolFollowAction.GetSSAction();
     }
     else if (intParam == 1)
     {
         action = PatrolAction.GetSSAction();
     }
     this.RunAction(objectParam, action, this);
 }
Beispiel #12
0
 public void SSActionEvent(SSAction source, int intParam = 0, GameObject objectParam = null)
 {
     if (intParam == 0)
     {
         TrackAction follow = TrackAction.GetAction(objectParam.gameObject.GetComponent <PatrolInfo>().player);
         this.RunAction(objectParam, follow, this);
     }
     else
     {
         PatrolAction move = PatrolAction.GetAction(objectParam.gameObject.GetComponent <PatrolInfo>().start_position);
         this.RunAction(objectParam, move, this);
     }
 }
Beispiel #13
0
 public void SSActoinEvent(SSAction source, int param = 0, GameObject objParam = null)
 {
     if (param == 0)
     {
         FollowAction followAction = FollowAction.getSSAction(objParam.gameObject.GetComponent <PatrolData>().player);
         this.RunAction(objParam, followAction, this);
     }
     else
     {
         PatrolAction patrolAction = PatrolAction.getSSAction(objParam.gameObject.GetComponent <PatrolData>().start_position);
         this.RunAction(objParam, patrolAction, this);
         Singleton <GameEventManager> .Instance.playerEscape();
     }
 }
Beispiel #14
0
 public void SSActionEvent(SSAction source,
                           int intParam,
                           GameObject objectParam)
 {
     if (intParam == 0)
     {
         PatrolFollowAction follow = PatrolFollowAction.getSSAction(objectParam);
         this.RunAction(objectParam, follow, this);
     }
     else
     {
         PatrolAction move = PatrolAction.getSSAction(objectParam.transform.position);
         this.RunAction(objectParam, move, this);
     }
 }
Beispiel #15
0
    public void Start()
    {
        goToPoint  = transform.position;
        mRigidbody = GetComponent <Rigidbody>();
        if (debugDst != null)
        {
            goToPosition(debugDst);
        }
        patrolAction = new PatrolAction(this, this);
        crowlAction  = new CrowlAction(this, this);
        walkAction   = new WalkAction(this, this);

        AddAction(patrolAction);
        //    AddAction(crowlAction);
        base.Start();
    }
        private void BuildPatrolState(State inTargetState, NpcController inNpcController, NpcDataHolder inNpcData, State inIdleState, State inAttackState, State inDieState)
        {
            // --------------------------------------------------------------------------------
            // 1-  Setup Actions
            // --------------------------------------------------------------------------------
            var patrolAction = new PatrolAction(inNpcController, inNpcData.patrolRange, inNpcData.patrolDuration);
            // --------------------------------------------------------------------------------
            // 2-  Setup decisions
            // --------------------------------------------------------------------------------
            var attackDecision = new AttackDecision(inNpcController);
            var idleDecision   = new IdleDecision(patrolAction);
            var dieDecision    = new DieDecision(inNpcController.gameView as IDestructible);
            // --------------------------------------------------------------------------------
            // 3-  Setup Transitions
            // --------------------------------------------------------------------------------
            var transitionToAttack = new Transition()
            {
                hasFalseState = false,
                decision      = attackDecision,
                trueState     = inAttackState
            };

            var transitionToIdle = new Transition()
            {
                hasFalseState = false,
                decision      = idleDecision,
                trueState     = inIdleState
            };
            var transitionToDie = new Transition()
            {
                hasFalseState = false,
                decision      = dieDecision,
                trueState     = inDieState
            };

            // --------------------------------------------------------------------------------
            // 4-  Define State
            // --------------------------------------------------------------------------------
            inTargetState.Define(
                Color.cyan, new Action[] { patrolAction },
                new [] { transitionToDie, transitionToAttack, transitionToIdle }
                );
        }
        private void Awake()
        {
            Animator = GetComponent <Animator>();
            unit     = GetComponent <Unit>();
            //Create the Finite State Machine
            fsm = new FSM("AI Controller FSM");

            //Create the states and actions
            idleState        = fsm.AddState(CharacterStates.STATE_IDLE);
            followState      = fsm.AddState(CharacterStates.STATE_FOLLOW);
            attackState      = fsm.AddState(CharacterStates.STATE_ATTACK);
            patrolState      = fsm.AddState(CharacterStates.STATE_PATROL);
            idleAction       = new IdleAction(idleState, this);
            followMoveAction = new MoveAction(followState, this);
            patrolMoveAction = new MoveAction(patrolState, this);
            patrolAction     = new PatrolAction(patrolState, this);
            attackAction     = new AttackAction(attackState, this);

            //Add actions to the states
            idleState.AddAction(idleAction);
            followState.AddAction(followMoveAction);
            attackState.AddAction(attackAction);
            patrolState.AddAction(patrolAction);
            patrolState.AddAction(patrolMoveAction);
            //Add transitions to the states
            idleState.AddTransition("ToFollow", followState);
            followState.AddTransition("ToIdle", idleState);
            followState.AddTransition("ToAttack", attackState);
            attackState.AddTransition("ToIdle", idleState);
            attackState.AddTransition("ToFollow", followState);
            patrolState.AddTransition("ToIdle", idleState);
            patrolState.AddTransition("ToFollow", followState);



            //ScanForObjects(gameObject.transform.position, m_DetectionRadius);
        }
Beispiel #18
0
    private PatrolAction go_patrol;                            //巡逻兵巡逻

    public void GoPatrol(GameObject patrol)
    {
        go_patrol = PatrolAction.GetAction(patrol.transform.position);
        this.RunAction(patrol, go_patrol, this);
    }
 public void GoPatrol(GameObject patrol)
 {
     patrolAction = PatrolAction.getSSAction(patrol.transform.position);
     this.RunAction(patrol, patrolAction, this);
 }
Beispiel #20
0
 public void Patrol(GameObject patrol)
 {
     patrolAction = PatrolAction.getAction(new Vector3(Random.Range(-1, 1f), 0, Random.Range(-1, 1f)), speed);
     this.RunAction(patrol, patrolAction, this);
 }
Beispiel #21
0
 public void beginPatrol(GameObject patrolman)
 {
     patrol = PatrolAction.GetSSAction(player);
     RunAction(patrolman, patrol, this);
 }
 public IdleDecision(PatrolAction inPatrolAction)
 {
     _targetAction = inPatrolAction;
 }
Beispiel #23
0
 void setAction()      //调用PatrolAction中的函数实现patrol的移动
 {
     patrolAc = PatrolAction.getAction();
     patrolAc.setPatrolInfo(this);
     Singleton <CCActionManager> .Instance.RunAction(patrol, patrolAc, null);
 }
Beispiel #24
0
 void setAction()
 {
     patrolAc = PatrolAction.getAction();
     patrolAc.setChaserInfo(this);
     Singleton <CCActionManager> .Instance.RunAction(chaser, patrolAc, null);
 }
Beispiel #25
0
 // 巡逻
 public void Patrol(GameObject ptrl)
 {
     this.patrol = PatrolAction.GetAction(ptrl.transform.position);
     Debug.Log("PatrolActionManager.Patrol()");
     this.RunAction(ptrl, patrol, this);
 }
 // 巡逻
 public void Patrol(GameObject ptrl)
 {
     this.patrol = PatrolAction.GetAction(ptrl.transform.position);
     this.RunAction(ptrl, patrol, this);
 }
Beispiel #27
0
    public static PatrolAction GetSSAction()
    {
        PatrolAction action = ScriptableObject.CreateInstance <PatrolAction>();

        return(action);
    }