Пример #1
0
    public static PatrolWalkAction GetWalkAction()
    {
        PatrolWalkAction walk = CreateInstance <PatrolWalkAction>();

        walk.state = PatrolState.forward;
        return(walk);
    }
Пример #2
0
    public void SSActionEvent(SSAction source, SSActionEventType events = SSActionEventType.Completed, int type = 0)
    {
        //巡逻时触发,设置目标为下一个地点
        if (type == 0)
        {
            PatrolWalkAction walk = (PatrolWalkAction)source;
            switch (walk.GetPatrolState())
            {
            case PatrolState.forward:
                TurnLeft(walk);
                break;

            case PatrolState.left:
                TurnBackward(walk);
                break;

            case PatrolState.backward:
                TurnRight(walk);
                break;

            case PatrolState.right:
                TurnForward(walk);
                break;
            }
        }
        //追踪玩家时触发,玩家死亡,游戏结束
        if (type == 1)
        {
            SSDirector.getInstance().currentSceneController.loseGame();
        }
    }
Пример #3
0
 //巡逻兵 patrol 开始巡逻
 public void PatrolAround(Patrol patrol)
 {
     patrols[patrol.getIndex()] = patrol;
     //默认以woal状态开始巡逻
     walk[patrol.getIndex()] = PatrolWalkAction.GetWalkAction();
     //状态设置为巡逻
     state[patrol.getIndex()] = 0;
     Debug.Log("start patrol");
     this.RunAction(patrol.getGameObject(), walk[patrol.getIndex()], this);
 }
Пример #4
0
 //向后巡逻
 public void TurnBackward(PatrolWalkAction source)
 {
     source.SetPatrolState(PatrolState.backward);
     source.target += Vector3.back * Random.Range(15, 25);
 }
Пример #5
0
 //向前巡逻
 public void TurnForward(PatrolWalkAction source)
 {
     source.SetPatrolState(PatrolState.forward);
     source.target = source.initPos;
 }
Пример #6
0
 //向右巡逻
 public void TurnRight(PatrolWalkAction source)
 {
     source.SetPatrolState(PatrolState.right);
     source.target += Vector3.right * Random.Range(15, 25);
 }
Пример #7
0
 //向左巡逻
 public void TurnLeft(PatrolWalkAction source)
 {
     source.SetPatrolState(PatrolState.left);
     source.target += Vector3.left * Random.Range(15, 25);
 }