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); }
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; }
public override void Act(StateComponent statesComponent) { statesComponent.GetComponent <IMovable>().Move(speed); }