コード例 #1
0
 /// <summary>
 /// 检查
 /// </summary>
 public void UpdateBehaviorType(MovingEntity entity, SteeringBehavior.Type_ type)
 {
     if (type == Type)
     {
         return;
     }
     Behavior = SteeringBehavior.Create(entity, type);
 }
コード例 #2
0
 public BehaviorWrapper GetBehavior(SteeringBehavior.Type_ type)
 {
     foreach (var b in Behaviors)
     {
         if (b.Type == type)
         {
             return(b);
         }
     }
     Debug.LogErrorFormat("Get Behavior Error:{0}", type.ToString());
     return(null);
 }
コード例 #3
0
 /// <summary>
 /// 工厂方法
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="type"></param>
 /// <returns></returns>
 public static SteeringBehavior Create(MovingEntity entity, SteeringBehavior.Type_ type)
 {
     if (type == Type_.seek)
     {
         return(new Seek(entity));
     }
     else if (type == Type_.wall_avoidance)
     {
         return(new WallAvoidance(entity));
     }
     else if (type == Type_.wander)
     {
         return(new Wander(entity));
     }
     return(null);
 }
コード例 #4
0
 protected SteeringBehavior(MovingEntity entity, string name, SteeringBehavior.Type_ type)
 {
     _movingEntity = entity;
     BehaviorName  = name;
     Type          = type;
 }
コード例 #5
0
ファイル: MovingEntity.cs プロジェクト: hemingfei/Green
 public SteeringBehavior GetBehavior(SteeringBehavior.Type_ type)
 {
     return(Behaviors.GetBehavior(type).Behavior);
 }
コード例 #6
0
ファイル: MovingEntity.cs プロジェクト: hemingfei/Green
 public void BehaviorOff(SteeringBehavior.Type_ type)
 {
     Behaviors.GetBehavior(type).Behavior.ActiveOff();
 }