當使用切換到另一個級別時,我試圖保持 currentHealth 變數相同 DontDestroyOnLoad()
public class Health : MonoBehaviour
{
[SerializeField] public float startingHealth;
public float currentHealth;
private void Awake()
{
currentHealth = startingHealth;
GameObject.DontDestroyOnLoad(this.currentHealth);
}
但我正面臨這個錯誤 Argument 1: cannot convert from 'float' to 'UnityEngine.Object'
我是 Unity 的新手,不知道如何正確使用此方法。先感謝您。
uj5u.com熱心網友回復:
public class Health : MonoBehaviour
{
public Health Instance;
//or public Health[] Instances for multiple instances of health
[SerializeField] public float startingHealth;
public float currentHealth;
private void Awake()
{
if(Instance == null){Instance == this}
else{Destroy(this);}
//keeps one script active, destroying any new copies
//for multi instance, append this don't forget - remove old instances
DontDestroyOnLoad(this);
//refers to this instance, so non-static is saved
//because monobehaviour, each instance calls this
}
uj5u.com熱心網友回復:
您只能使用 DontDestroyOnLoad(); 在游戲物件上,您嘗試使用該方法的物件是一個變數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/403246.html
標籤:
上一篇:Update()中斷自身
下一篇:如何將png轉換為字體
