public BattleState(ref TargetFinder.Target target) { var decisionOn = target.isDecision ? 4 : 0; //.GetHashCode() << 2; var existsOn = target.isExists ? 2 : 0; //.GetHashCode() << 1; var battleOn = target.isRelease ? 0 : 1; //(!target.isRelease).GetHashCode(); state = (EnMode)(decisionOn | existsOn | battleOn); }
float limitTime; // どうしてもたどり着けない場合のための時間制限など // 移動先計算 --------------------- public bool routine(_Action3Enemy self, ref TargetFinder.Target target) { if (!isGoalOrLimit(ref self.figure, self.rb.position)) { return(false); } if (target.isExists) { setTargetPoint(self, ref target); } else { setTargetPoint(self); } return(true); }
public void setTargetPoint(_Action3Enemy self, ref TargetFinder.Target target) { targetPoint = target.imaginaryPosition; //self.rb.position + ( target.imaginaryPosition - self.rb.position ) * 0.5f; setTimer(Random.Range(0.5f, 3.0f)); }