// Start is called before the first frame update void Start() { currentState = AI_STATE.HEALTH_HIGH; seekComponent = GetComponent <KinematicSeek>(); fleeComponent = GetComponent <KinematicFlee>(); arriveComponent = GetComponent <KinematicArrive>(); sidestepComponent = GetComponent <KinematicSidestep>(); playerScript = GetComponent <PlayerScript>(); lowHealthTargetNearby = new TargetNearbyDecision(5.0f); lowHealthTargetNearIncomingProjectile = new IncomingProjectileDecision(); lowHealthTargetFarIncomingProjectile = new IncomingProjectileDecision(); highHealthTargetNearby = new TargetNearbyDecision(5.0f); highHealthTargetNearIncomingProjectile = new IncomingProjectileDecision(); highHealthTargetFarIncomingProjectile = new IncomingProjectileDecision(); arrivePlayerAction = new ArrivePlayerAction(); shootPlayerAction = new ShootPlayerAction(); seekHealthAction = new SeekHealthAction(); avoidPlayerAction = new AvoidPlayerAction(); avoidProjectileAction = new AvoidProjectileAction(); avoidProjectileAction.kinematicComponent = seekComponent; avoidProjectileAction.character = gameObject; arrivePlayerAction.kinematicComponent = arriveComponent; arrivePlayerAction.character = gameObject; seekHealthAction.kinematicComponent = seekComponent; seekHealthAction.character = gameObject; avoidPlayerAction.kinematicComponent = fleeComponent; avoidPlayerAction.character = gameObject; shootPlayerAction.kinematicComponent = arriveComponent; shootPlayerAction.character = gameObject; lowHealthTargetNearby.character = gameObject; lowHealthTargetNearby.target = target; lowHealthTargetNearby.trueBranch = lowHealthTargetNearIncomingProjectile; lowHealthTargetNearby.falseBranch = lowHealthTargetFarIncomingProjectile; lowHealthTargetNearIncomingProjectile.character = gameObject; lowHealthTargetNearIncomingProjectile.trueBranch = avoidProjectileAction; lowHealthTargetNearIncomingProjectile.falseBranch = avoidPlayerAction; lowHealthTargetFarIncomingProjectile.character = gameObject; lowHealthTargetFarIncomingProjectile.trueBranch = avoidProjectileAction; lowHealthTargetFarIncomingProjectile.falseBranch = seekHealthAction; highHealthTargetNearby.character = gameObject; highHealthTargetNearby.target = target; highHealthTargetNearby.trueBranch = highHealthTargetNearIncomingProjectile; highHealthTargetNearby.falseBranch = highHealthTargetFarIncomingProjectile; highHealthTargetNearIncomingProjectile.character = gameObject; highHealthTargetNearIncomingProjectile.trueBranch = avoidProjectileAction; highHealthTargetNearIncomingProjectile.falseBranch = shootPlayerAction; highHealthTargetFarIncomingProjectile.character = gameObject; highHealthTargetFarIncomingProjectile.trueBranch = avoidProjectileAction; highHealthTargetFarIncomingProjectile.falseBranch = arrivePlayerAction; }
void Start() { goal_script = GetComponent <Goal>(); goal_script.setGoal(ordered_goals[goal_index]); kinematicArrive = GetComponent <KinematicArrive>(); dynoArrive = GetComponent <DynoArrive>(); }
void Awake() { seek = GetComponent <KinematicSeek>(); flee = GetComponent <KinematicFlee>(); arrive = GetComponent <KinematicArrive>(); wander = GetComponent <KinematicWander>(); }
// Use this for initialization void Start() { char_kinematic = GetComponent <Kinematic>(); seek = GetComponent <KinematicSeek>(); arrive = GetComponent <KinematicArrive>(); align = GetComponent <DynoAlign>(); }
public void ManageAI(MovementAI ai, Rigidbody2D character) { Kinematic characterKinematic = KinematicAdapter.FromRigidbody2DToKinematic(character); Kinematic targetKinematic = new Kinematic(); Algorithm algorithm = new KinematicNone(); switch (ai.aiAlgorithm) { case AIAlgorithm.KinematicSeek: targetKinematic = KinematicAdapter.FromRigidbody2DToKinematic(ai.target); algorithm = new KinematicSeek(characterKinematic, targetKinematic, ai.maxSpeed); break; case AIAlgorithm.KinematicFlee: targetKinematic = KinematicAdapter.FromRigidbody2DToKinematic(ai.target); algorithm = new KinematicFlee(characterKinematic, targetKinematic, ai.maxSpeed); break; case AIAlgorithm.KinematicArrive: targetKinematic = KinematicAdapter.FromRigidbody2DToKinematic(ai.target); algorithm = new KinematicArrive(characterKinematic, targetKinematic, ai.maxSpeed, ai.satisfactionRadius, ai.timeToTarget); break; case AIAlgorithm.KinematicWander: algorithm = new KinematicWander(characterKinematic, ai.maxSpeed, ai.maxRotation); break; } SteeringOutput steering = algorithm.getSteering(); steering.Apply(characterKinematic, ai.lookWhereYoureGoing, ai.maxSpeed, Time.deltaTime); KinematicAdapter.UpdateRigidbody2DWithKinematic(character, characterKinematic); }
// Use this for initialization void Start() { char_kinematic = GetComponent <Kinematic>(); seek = GetComponent <KinematicSeek>(); arrive = GetComponent <KinematicArrive>(); wander = GetComponent <Wander>(); }
void Start() { char_RigidBody = GetComponent <Kinematic>(); arrive = GetComponent <DynoArrive>(); align = GetComponent <DynoAlign>(); kinematicArrive = GetComponent <KinematicArrive>(); isWandering = true; }
// Use this for initialization void Start() { char_kinematic = GetComponent <Kinematic>(); seek = GetComponent <KinematicSeek>(); arrive = GetComponent <KinematicArrive>(); dynoAlign = GetComponent <DynoAlign>(); if (recordLogs) { logWriter = GetComponent <CustomLogWriter>(); } }
void Start() { //Inicializamos las estructuras necesarias de otros componentes enemy = GameObject.Find(enemyName).GetComponent <static_data>(); kineticsEnemy = enemy.kineticsAgent; kineticsAgent = agent.kineticsAgent; steeringAgent = agent.steeringAgent; maxspeed = agent.maxspeed; //Inicializamos movimientos kinematicArrive = new KinematicArrive(kineticsAgent, kineticsEnemy, maxSeekSpeed, timeTotarget, radius); }
protected void Awake() { // Init Vars InitializeVars(); // Initialize behaviors arrive = new Behavior[2]; arrive[0] = new KinematicArrive() { maxSpeed = maxSpeed }; arrive[1] = new SteeringArrive() { maxSpeed = maxSpeed, timeToTarget = timeToTarget, slowRadius = slowRadius, targetRadius = targetRadius }; wander = new KinematicWander(wanderSpeed); pursue = new KinematicPursue(maxSpeed) { maxPredication = maxPrediction }; // Initialize Rotation behaviors align = new Align[2]; align[0] = new KinematicAlign(rotationSpeed); align[1] = new SteeringAlign(); if (steeringAtStart) { behaviorIndex = 1; } else { behaviorIndex = 0; } }
// Use this for initialization void Start() { StaticTransform charStatic = new StaticTransform(transform); StaticTransform targetStatic = new StaticTransform(target); arrive = new KinematicArrive(charStatic, targetStatic, maxSpeed, arriveGoalRadius, arriveTimeToTarget); }
// Use this for initialization void Start() { arrive = GetComponent <KinematicArrive>(); }