@Ad1yar
когда я убиваю ОДНОГО зомби убиваются все пачиму?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BulletDestroy : MonoBehaviour
{
void Update()
{
Destroy(gameObject, 10f);
}
private void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Zombie")
{
Zombie.zHP -= 10;
Destroy(gameObject);
}
if (other.gameObject.tag == "Player")
{
Destroy(gameObject);
}
Destroy(gameObject);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Zombie : MonoBehaviour
{
public NavMeshAgent navMesh;
public Animator anim;
public Transform player;
public static int zHP = 200;
void Start()
{
}
void Update()
{
navMesh.SetDestination(player.transform.position);
if (zHP == 0)
{
Destroy(this.gameObject);
}
}
}
Решения вопроса 0
Ответы на вопрос 2
@K0TlK
Потому что хп зомби у тебя статик поле. Всё, что статик — принадлежит классу, всё что не статик принадлежит конкретному объекту, класс — фабрика объектов, существует в единичном экземпляре => твое хп одно для всех => если хп == 0, то оно 0 у всех зомби. Убирай статику, делай TryGetComponent(out Zombie zombie) в OnCollisionEnter в Bullet и отнимай хп у конкретного зомби.
@freeExec
Кто вам сказал, что вы уничтожаете одного зомби, а не код работает для всех.