public override bool Verify(StateComponent smComponent)
    {
        Vector2   position = smComponent.transform.position;
        Transform target   = Physics2D.OverlapCircle(position, detectionRadius, detectionLayer)?.transform;

        EnemyComponent component = smComponent.GetComponent <EnemyComponent>();

        if (component)
        {
            component.SetTarget(target);
        }

        return(target != null);
    }
Пример #2
0
 private void UpdateCurrentEntity(List <BasicEntity> list)
 {
     for (int i = 0; i < list.Count; i++)
     {
         StateComponent state = (StateComponent)list[i].GetSpecicalComponent(ComponentType.State);
         if (state.m_actionPoint != 0)
         {
             if (state.GetComponent <BlockInfoComponent>().m_blockType == BlockType.Player)
             {
                 StateStaticComponent.m_currentEntity = list[i];
             }
             else
             {
                 StateStaticComponent.m_EcurrentEntity = list[i];
             }
             return;
         }
     }
     //重新填充行动点
     InitActionPoint(list);
     //重新调用
     UpdateCurrentEntity(list);
     return;
 }
 public override bool Verify(StateComponent statesComponent)
 {
     return(checkStatus == statesComponent.GetComponent <StaminaComponent>().GetStaminaStatus());
 }
 public override void Act(StateComponent statesComponent)
 {
     statesComponent.GetComponent <StaminaComponent>().ConsumeStamina();
 }
 public override void Act(StateComponent statesComponent)
 {
     statesComponent.GetComponent <SpriteRenderer>().color = newColor;
 }
Пример #6
0
 public override void Act(StateComponent statesComponent)
 {
     statesComponent.GetComponent <IMovable>().Move(speed);
 }