private void FixedUpdate() { //Move/Attack Mode if (selectedUnits.Count > 0) { //Booster if (Input.GetButton("Boost")) { for (int i = 0; i < selectedUnits.Count; i++) { //If the AI is in asteriod mode AIDroneController aiCtrl = selectedUnits[i].GetComponent <AIDroneController>(); if (aiCtrl.asteriodOverride) { //Add force at point aiCtrl.asteriodBody.AddForceAtPosition((selectedUnits[i].transform.forward * boosterSpeed * Time.deltaTime), selectedUnits[i].transform.position); } } } if (Input.GetAxis("Boost Horizontal") != 0) { for (int i = 0; i < selectedUnits.Count; i++) { //If we are in asteriod mode AIDroneController aiCtrl = selectedUnits[i].GetComponent <AIDroneController>(); if (aiCtrl.asteriodOverride) { //Rotate aiCtrl.asteriodBody.transform.rotation = Quaternion.Euler(aiCtrl.asteriodBody.transform.rotation.eulerAngles + (Vector3.up * (Input.GetAxis("Boost Horizontal") * (boosterSpeed * 0.05f)) * Time.deltaTime)); } } } if (Input.GetButton("BoostSlowToHalt")) { Debug.Log("Slwoing"); for (int i = 0; i < selectedUnits.Count; i++) { //If we are in asteriod mode AIDroneController aiCtrl = selectedUnits[i].GetComponent <AIDroneController>(); if (aiCtrl.asteriodOverride) { //Slow velocity if (aiCtrl.asteriodBody.velocity.magnitude > 0.1f) { aiCtrl.asteriodBody.AddForce(-(aiCtrl.asteriodBody.velocity.normalized) * boosterSpeed * Time.deltaTime); } //Stop velocity else { aiCtrl.asteriodBody.velocity = Vector3.zero; } } } } } }
//Owner //Health //Attack mode //[State] //Targeting and info //Idle //Stuck private void Start() { aiDroneCtrl = transform.parent.GetComponent <AIDroneController>(); objID = transform.parent.GetComponent <ObjectID>(); visualActive = false; }