ゾンビオブジェクトにゾンビプレハブを添付しました。しかし、Playを押すと、ゾンビオブジェクトでスクリプトが消えます。 Playを押すと、スクリプトがオブジェクトに残るようにするにはどうすればよいですか?Unity:プレイモードに入ると、オブジェクト上のスクリプトが消える
私の変数を宣言して初期化しました。私はそれが何か基本的だと知っていますが、あなたの助けが大いに評価されるでしょう!
public class PlayerLifeCollider : MonoBehaviour {
public Zombie zombie; //declared
public float damage = 1;
public void Start()
{
zombie = GetComponent<Zombie>(); //instantiated
}
private void Update()
{
zombie.DamagePlayer(damage); //**Null error here**
}
}
public class Zombie : MonoBehaviour
{
public int currentHealth;
private Player player;
private PlayerLifeCollider playerCollider;
public int damage;
public void Start()
{
playerCollider = GetComponent<PlayerLifeCollider>();
}
public void Damage(int damageAmount)
{
currentHealth -= damageAmount;
if (currentHealth <= 0)
{
playerCollider.ObjectsInRange.Remove(gameObject);
gameObject.SetActive(false);
}
}
public void DamagePlayer(float damage)
{
player.Life(damage);
}
}
public class Player : MonoBehaviour {
public float playerLife = 100;
public void Life (float damage)
{
playerLife -= damage;
if (playerLife <=0)
{
playerLife = 100;
SceneManager.LoadScene(2);
}
}
'player.Life(float)'の実装は何ですか? –
'zombie = GetComponent()'が既にインスペクタに割り当てられている場合は、割り当てる必要はありません。 –
ryeMoss