void Start() { objectAsReference.transform.position = transform.position; //set up the resting position gameobject if(transform.Find(nameOfRestingPosition) == null ) { restingPosition = new GameObject( nameOfRestingPosition ); restingPosition.transform.parent = transform; restingPosition.transform.position = transform.position; restingPosition.transform.localRotation = Quaternion.Euler( new Vector3( 90f, 0f, 0f) ); restingPosition.transform.localPosition -= new Vector3( 0f, 0.4f, 0f ); } else { restingPosition = transform.Find(nameOfRestingPosition).gameObject; } //set up cache correctly brain = transform.parent.parent.GetComponent<AIStateManager>(); weaponController = transform.parent.parent.GetComponent<AIWeaponController>(); }
public override void Act(Transform player, Transform npc) { //Set the target position as the player position destPos = player.position + new Vector3(0.0f, 1.0f, 0.0f); npc.GetComponent<AICarController>().throttle = 1.0f; //Calculate the steering value Vector3 RelativeWaypointPosition = npc.InverseTransformPoint(new Vector3(destPos.x, npc.position.y, destPos.z)); npc.GetComponent<AICarController>().steer = RelativeWaypointPosition.x / RelativeWaypointPosition.magnitude; //Initialise the weapon controller for attack state if (!bAIWeaponInitialised) { weapon = npc.GetComponent<AIWeaponController>(); npcTransform = npc; bAIWeaponInitialised = true; } Transform turret = weapon.Turret; Quaternion turretRotation = Quaternion.LookRotation(destPos - turret.position); turret.rotation = Quaternion.Slerp(turret.rotation, turretRotation, Time.deltaTime * curRotSpeed); //Shoot shouldn't call every frame if (!bStartShooting) { //Shoot bullet/Missiles towards the player ShootShells(); bStartShooting = true; } }
void Start() { // If a Player target hasn't been set then find one. if (Player == null) { Player = GameObject.FindGameObjectWithTag(TargetTag); } // Get AIWeaponController component. _AIWeaponController = this.GetComponentInChildren <AIWeaponController> (); }
public void SetupAI(AISettings settings) { aiEnabled = false; this.maxLP = settings.MaxLP; this.minimumDistance = settings.MinDistance; GetComponent <AIWeaponController>().accuracy = settings.Accuracy; GetComponent <AIWeaponController>().cooldown = settings.CoolDown; GetComponent <AIWeaponController>().maxExtraCooldown = settings.MaxExtraCooldown; GetComponent <AIWeaponController>().shootDistance = settings.ShootDistance; GetComponent <AIWeaponController>().Setup(); if (target == null) { GameObject go = GameObject.FindGameObjectWithTag(enemyTag); if (go != null) { target = go.transform; } } lp = maxLP; this.transform.position = new Vector3(RoundedMath.Mult(Mathf.RoundToInt(this.transform.position.x / boxFactor), boxFactor), this.transform.position.y); aiMovement = GetComponent <AIMovement>(); aiWeaponController = GetComponent <AIWeaponController>(); ea = new EnvironmentAnalyser(); aiMemory = new AIMemory(windowSizeX, windowSizeY, this.transform.position, ea, this, boxFactor); generalSolver = new GeneralSolver(aiMemory); aiMemory.MaxAreaWidth = settings.MaxAreaWidth; aiToTarget = new AIGetToTargetActions(aiMemory, generalSolver, aiMovement, this.transform, target, this, minimumDistance, this); aiWeaponActions = new AIWeaponActions(aiWeaponController); projectileDetector = new ProjectileDetector(this.transform, 10, projectileLayer); aiBehaviorTree = new AIBehaviorTree(aiToTarget, aiWeaponActions, this, projectileDetector); if (aiType == AIType.AGGRESSIVE) { aiBehaviorTree.CreateAndStartAggrassiveAI(); } if (aiType == AIType.DEFENSIVE) { aiBehaviorTree.CreateAndStartDefensiveAI(); } aiEnabled = true; }
void Start() { objectAsReference.transform.position = transform.position; //set up the resting position gameobject if (transform.Find(nameOfRestingPosition) == null) { restingPosition = new GameObject(nameOfRestingPosition); restingPosition.transform.parent = transform; restingPosition.transform.position = transform.position; restingPosition.transform.localRotation = Quaternion.Euler(new Vector3(90f, 0f, 0f)); restingPosition.transform.localPosition -= new Vector3(0f, 0.4f, 0f); } else { restingPosition = transform.Find(nameOfRestingPosition).gameObject; } //set up cache correctly brain = transform.parent.parent.GetComponent <AIStateManager>(); weaponController = transform.parent.parent.GetComponent <AIWeaponController>(); }
void Awake() { rb = GetComponent <Rigidbody>(); weaponController = GetComponent <AIWeaponController>(); _allegiance = GetComponent <TargetableObject>().Allegiance; }
void Awake() { //set the caches correctly weaponController = GetComponent<AIWeaponController>(); movementManager = GetComponent<AIMovementSwitcher>(); coverManager = GetComponent<SearchCover>(); sightManager = sight.GetComponent<Sight>(); earsManager = ears.GetComponent<Auditory>(); patrolM = patrolManager.GetComponent<PatrolManager>(); //at the start the current state is patroling currentState = CurrentState.patrol; //and the engagment is set to free engagementStatus = EngagementState.free; //some variables that we will later use for reference initFreezeTime = freezeTime; initShockTime = shockTime; initFOV = sightManager.fieldOfView; initChanceForFight = chanceForFight; initFear = fear; audioControl = GetComponent<ShooterAIAudioControl>(); if(GetComponent<NavMeshAgent>() != null) { initHeight = GetComponent<NavMeshAgent>().height; } initYScale = GetComponentInChildren<HealthManager>().gameObject.transform.localScale.y; movement = movementManager; //anti-bottlenecking procedure enemyDistanceCheckFrameBarrier += Random.Range(-30f, 30f); //find the health manager automatically healthManager = GetComponentInChildren<HealthManager>().gameObject; //setup multiple weapons correctly otherWeapons.Add( weaponController.weaponHoldingObject ); otherWeaponsMelee.Add( meleeAttackUsed ); }
public AIWeaponActions(AIWeaponController wc) { this.weaponController = wc; }
void Awake () { rb = GetComponent<Rigidbody>(); weaponController = GetComponent<AIWeaponController>(); allegiance = GetComponent<TargetableObject>().allegiance; }
// Use this for initialization void Start() { myWeaponController = GetComponent <AIWeaponController>(); myCurrentLocation = GetComponent <Transform>(); aiMoveInformation = GetComponent <AIMoveScript>(); }