public void Init(Transform target, EnemyMovementSetting settings) { _target = target; switch (settings.movementType) { case EnemyMovementType.GROUND: NavMeshAgent agent = gameObject.AddComponent <NavMeshAgent>(); _movementBehaviour = new NavMeshMovement(agent, settings.speed, settings.stoppingDistance); break; case EnemyMovementType.FLYING: Pursuer pursuer = gameObject.AddComponent <Pursuer>(); pursuer.SetConstraints(settings.xMin, settings.xMax, settings.yMin, settings.yMax, settings.zMin, settings.zMax); pursuer.SetPathfindingParameters(settings.selectedPFAlg, settings.pathfindingLevel, settings.inEditorPathfindingTraverce, settings.heuristicFactor, settings.trajectoryOptimization, settings.trajectorySmoothing); pursuer.SetMovementSettings(settings.speed, settings.moveVectorOrientation, settings.turnSpeed); _movementBehaviour = new FlyingMovement(pursuer, settings.lesion, settings.updateOffset); break; default: throw new ArgumentOutOfRangeException(); } }
private void Awake() { agent = gameObject.GetComponent <NavMeshAgent>(); player = GameObject.FindWithTag("Player"); movementBehavior = new RoamBehaviour(agent, 5); AddDashAbility(); }
private void Awake() { agent = gameObject.GetComponent <NavMeshAgent>(); player = GameObject.FindWithTag("Player"); health = new Health(10); //Initializing interfaces movementBehaviour = new RoamBehaviour(agent, 8); SetupAbilities(); }
public override bool Equals(object obj) { IMovementBehaviour behaviour = obj as IMovementBehaviour; if (behaviour == null) { return(false); } return(Equals(behaviour)); }
public bool AddBehaviour(MovementType type, IMovementTarget target) { var movementData = new MovementData(agent, target); // Decorate existing movement behaviours. switch (type) { case MovementType.Seek: this.behaviour = new SeekMovementBehaviour(this.behaviour, movementData); break; case MovementType.Flee: this.behaviour = new FleeMovementBehaviour(this.behaviour, movementData); break; case MovementType.Pursue: this.behaviour = new PursueMovementBehaviour(this.behaviour, movementData); break; case MovementType.Evade: this.behaviour = new EvadeMovementBehaviour(this.behaviour, movementData); break; case MovementType.Wander: this.behaviour = new WanderMovementBehaviour(this.behaviour, movementData); break; case MovementType.Avoid: this.behaviour = new AvoidMovementBehaviour(this.behaviour, movementData); break; default: break; } return(this.behaviour != null); }
public PursueMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData) : base(movementBehaviour, movementData) { }
public MovementBuilder(IMovementAgent agent) { this.agent = agent; this.behaviour = new IdleMovementBehaviour(); }
public WanderMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData) : base(movementBehaviour, movementData) { }
protected MovementBehaviourBaseViewModel(IMovementBehaviour model) { Model = model; }
/// <summary> /// Adds current movement to this class. /// </summary> /// <param name="movementBehaviour">Movement Behaviour to add.</param> public void AddMovementBehaviour(IMovementBehaviour movementBehaviour) => this.movementBehaviour = movementBehaviour;
public SeekMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData) : base(movementBehaviour, movementData) { }
public AbstractMovementDecorator(IMovementBehaviour movementBehaviour, IMovementData movementData) { this.movementBehaviour = movementBehaviour; this.movementData = movementData; this.movementController = movementData.Agent.Controller; }
public AvoidMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData) : base(movementBehaviour, movementData) { }
public bool Equals(IMovementBehaviour behaviour) { return(behaviour.Id == Id); }
public EvadeMovementBehaviour(IMovementBehaviour movementBehaviour, IMovementData movementData) : base(movementBehaviour, movementData) { }