playerLife
がドロップされるため、変数がインスペクタまたは画面上の正常性テキストで視覚的に更新されません。ゼロ以下。Unity:PlayerLife変数がInspectorまたはHUDで視覚的に更新されず、背景でも機能します。
私はプレハブZombie
ゲームオブジェクトに添付Player
が単独プレハブPlayer
ではなく、シーン内のアクティブPlayer
であると判断しました。ゾンビは基本的なPlayerプレハブではなく、現場でアクティブなPlayerをスクリプトで参照するようにしますか?
public class Player : MonoBehaviour
{
public RaycastHit hit;
public int gunDamage = 1;
public Zombie zombie;
private float hitForce = 100f;
public float playerLife;
private Vector3 flareLower = new Vector3(0, -0.5f, 0);
void Start()
{
spawnPoints = playerSpawnPoint.GetComponentsInChildren<Transform>();
playerLife = 200;
}
void Update() //T-toggle
{
if (Input.GetButton("Fire1"))
{
LazerBeam();
}
if (reSpawn != lastToggle)
{
ReSpawn();
reSpawn = false;
}
else
lastToggle = reSpawn;
}
public void Life (float damage)
{
playerLife -= damage;
if (playerLife <=0)
{
playerLife = 100;
SceneManager.LoadScene(2);
}
}
}
public class Zombie : MonoBehaviour
{
public int currentHealth;
public Player player;
public PlayerLifeCollider playerCollider;
private int damage;
public void Damage(int damageAmount)
{
currentHealth -= damageAmount;
if (currentHealth <= 0)
{
PlayerLifeCollider.instance.ObjectsInRange.Remove(gameObject);
DestroyZombie();
}
}
public void DestroyZombie()
{
Destroy(gameObject);
// gameObject.SetActive(false);
}
public void DamagePlayer(float damage)
{
player.Life(damage);
}
}
プレイヤーライフが変わる前にプレーヤーが死んでしまう可能性はありますか?それが変化しなければ、それはおそらくゼロに達することができないので、プレイヤーは無敵でなければならない。 –
「更新しない」とまったく同じ意味ですか?プレイヤーが死ぬまでInspectorで 'lifePlayer'の値が決して変更されないことを意味しますか? – Isuka
ゾンビの内部にプレーヤー変数を設定していないと思っていたのですか? –