other enemy takes damage first when i hit other one until it die and just then the one thet i direct hit starting to take damage i use OnTriggerEnter on my shot script.
does some one know why is that happens?
this is my shot script:
public class Shotscript : MonoBehaviour
{
public Transform enemy;
public int minDist = 50;
public int maxDist = 35;
public bool isHere = false ;
public Enemypatrol enemyHit;
public float power = 100;
public float moveSpeed = 20;
// Use this for initialization
void Start ()
{
Invoke ("NoHitDestroy", 4);
enemyHit = GameObject.FindWithTag("Enemy").GetComponent ();
enemy = GameObject.FindWithTag ("Enemy").transform;
}
// Update is called once per frame
void Update ()
{
if (isHere )
{
//GetComponent ().destination = enemy.position ;
}
if (isHere == false)
{
transform.Translate (Vector3.forward * moveSpeed * Time.deltaTime);
}
}
collosion
void OnTriggerEnter (Collider other)
{
if (other.gameObject.CompareTag ("ShotDict"))
{
isHere = true;
}
if (other.gameObject.CompareTag ("Enemy"))
{
enemyHit.totalLife = enemyHit.totalLife - power;
Destroy(gameObject);
}
}
void NoHitDestroy ()
{
Destroy (gameObject);
}
}
and this is my enemy script:
public class Enemypatrol : MonoBehaviour {
public Transform followPlayer;
private bool isHere ;
public int minDist = 50;
public int maxDist = 35;
public float totalLife = 1000;
public float life = 1000;
public Text lifeText;
public bool showText ;
public PlayerArttibutes playerExp;
// Use this for initialization
void Start ()
{
followPlayer = GameObject.FindWithTag ("Player").transform;
playerExp = GameObject.FindWithTag ("Player").GetComponent ();
}
// Update is called once per frame
void Update ()
{
showText = false;
isHere = false;
transform.LookAt(followPlayer);
if (Vector3.Distance(followPlayer.position, transform.position) < minDist)
{
showText = true;
isHere = true;
}
if (showText)
{
lifeText.text = "life: " + totalLife.ToString();
}
if (isHere)
{
GetComponent ().destination = followPlayer.position ;
}
if (totalLife <= 0)
{
showText = false;
isHere = false;
Destroy(gameObject);
playerExp.heroExp += 150;
}
if (showText == false)
{
lifeText.text = " " ;
}
}
}
↧