/// <summary> /// 检查 /// </summary> public void UpdateBehaviorType(MovingEntity entity, SteeringBehavior.Type_ type) { if (type == Type) { return; } Behavior = SteeringBehavior.Create(entity, type); }
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); }
/// <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); }
protected SteeringBehavior(MovingEntity entity, string name, SteeringBehavior.Type_ type) { _movingEntity = entity; BehaviorName = name; Type = type; }
public SteeringBehavior GetBehavior(SteeringBehavior.Type_ type) { return(Behaviors.GetBehavior(type).Behavior); }
public void BehaviorOff(SteeringBehavior.Type_ type) { Behaviors.GetBehavior(type).Behavior.ActiveOff(); }