Я программировал, когда я столкнулся с проблемой, когда здоровье врага не падало, не говоря уже о разрушении gameObject.
Вот код для обоих скриптов:
Скрипт 1
using UnityEngine;
public class target : MonoBehaviour
{
public float health = 50f;
public void takeDamage(float amount)
{
amount -= health;
if(health <= 0)
{
Die();
}
}
void Die()
{
Destroy(gameObject);
}
}
скрипт 2
using System;
using System.Collections.Generic;
using UnityEngine;
public class Gun : MonoBehaviour
{
public float damage = 10f;
public float range = 100f;
public Camera fpsCam;
// Update is called once per frame
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range))
{
Debug.Log(hit.transform.name);
target target = hit.transform.GetComponent<target>();
if (target != null)
{
target.takeDamage(damage);
}
}
}
}
Предполагается, что целевой объект должен уничтожить объект, когда он достигнет 0 здоровья.
Пожалуйста, помогите мне