我寫了一個腳本(Timer),只存放了一個public 靜態float變數,用來計時,
然后另一個使用這個靜態變數的腳本(PointItemIcon)掛在在了很多游戲物體上,然后我去修改這個靜態變數的時候,并沒有起到共享效果。在修改了靜態變數后,其他物體腳本的Timer.time值并沒有發生變化
求解答 謝謝!
public class PointItemIcon : MonoBehaviour,IPointerEnterHandler
{
public int key;//背包物品的鍵
bool timeBool;//控制計時器的開關
BagManager managerObj;//BagManager的實體
void Update()
{
if (timeBool)
{
Timer.time += Time.deltaTime;
if (Timer.time > 2)
{
managerObj.bagTip.SetActive(false);
timeBool = false;
}
}
}
public void OnPointerEnter(PointerEventData eventData)
{
if (gameObject.activeSelf==true)
{
managerObj = BagManager.instance;
managerObj.bagTip.SetActive(true);
managerObj.bagTip.transform.GetChild(0).GetComponent<Text>().text = "<color=red>Name:" + managerObj.dic[key].Name + "</color>\n<color=maroon>BuyPrice:" + managerObj.dic[key].BuyPrice + "</color>\n<color=brown>SellPrice:" + managerObj.dic[key].SellPrice+"</color>";
Timer.time = 0;
timeBool = true;
}
}
}
uj5u.com熱心網友回復:
腳本類似屬性,掛在游戲物件上,改變的時候為什么會有這個共享效果啊,邏輯不通的,你可以試著將腳本的time的值是獲取父類的某個值,修改也是修改父類的游戲物件身上的值uj5u.com熱心網友回復:
Timer.time肯定會變得 它是靜態變數全域唯一,Timer.time += Time.deltaTime; 你確定這個呼叫 并且Timer類沒有錯誤轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/47418.html
標籤:Unity3D
