- Home /
Question by
TheShadyColombian · Sep 09, 2014 at 05:55 AM ·
followoverlapcollide
Colliders overlap with follow script
All of my enemies, or anything that seeks and follows something else, uses the same follow system, and so considering how they all take the same path, they occupy the same space, even though they have a collider component.
using UnityEngine;
using System.Collections;
public class ExperimentalRocketGrenade : MonoBehaviour {
public GameObject Explosion;
public GameObject Char;
public ExperimentalDeath Damage;
public float Health = 10;
public GameObject Target;
public float BulletSpeed;
public Transform TargetGo;
public bool isDead;
public bool isNearObject;
public Transform _myTransform;
public Transform Player;
public GameObject PlayerObject;
public float damping;
//Use this for who knows what
void Awake () {
_myTransform = transform;
}
// Use this for initialization
void Start () {
isNearObject = false;
Target = GameObject.FindGameObjectWithTag("Player");
TargetGo = Target.transform;
ExperimentalDeath Damage = Char.GetComponent<ExperimentalDeath>();
PlayerObject = GameObject.FindGameObjectWithTag("Player");
Player=PlayerObject.transform;
}
void LateUpdate () {
Quaternion rotation = Quaternion.LookRotation(TargetGo.position - _myTransform.position);
_myTransform.rotation = Quaternion.Slerp(_myTransform.rotation, rotation, Time.deltaTime * damping);
}
// Update is called once per frame
void Update () {
if (BulletSpeed < 200) {
BulletSpeed += 0.3f;
}
if (damping < 4){
damping += 0.005f;
}
if (isNearObject == true) {
Debug.Log ("Is in range");
}
if (Health < 0.1) {
isDead = true;
EnemyDie ();
}
GameObject Char = GameObject.Find("MonstercatChar");
transform.position += transform.forward * BulletSpeed * Time.deltaTime;
if(Vector3.Distance(TargetGo.position, transform.position) < 5) {
Debug.Log ("Is Damaging " + Char);
}
}
public void EnemyDamage (float amount) {
Health -= amount;
}
void onTriggerEnter (Collider other) {
Debug.Log ("Object In Range");
if(other == GameObject.FindGameObjectWithTag("Player")){
Debug.Log ("Bullet Hit");
Instantiate(Explosion, transform.position, transform.rotation);
Destroy (gameObject, 1);
}
if(other == GameObject.FindGameObjectWithTag("Bullet")){
Debug.Log ("Enemy damaged");
EnemyDamage(1);
Destroy (other);
}
isNearObject = true;
}
void onTriggerExit (Collider other) {
isNearObject = false;
}
void EnemyDie () {
Instantiate(Explosion, transform.position, transform.rotation);
Destroy (gameObject, 1);
}
}
Comment
Best Answer
Answer by TheShadyColombian · Oct 11, 2014 at 05:30 PM
Switched to nav mesh and set drag levels if the rigid body to infinite
Your answer
Follow this Question
Related Questions
Problems with follow script (pet like) 2 Answers
Help in Script (Java Script) 0 Answers
Enemy Targetting Help 1 Answer
Help, Sphere goes through the Wall! 3 Answers
Change AI Follow Players 1 Answer