我有两个预制件。 1)FoodItem 2)消费者
public class ItemController{
//Item Details
public float price;
public float eatingTime;
}
在连接的两个对象触发后,客户需要" eat"一段时间。一旦他们吃完,他们付钱。薪水需要更新分数。
public class CharacterControl : MonoBehaviour
{
//CustomerDetails
if(time == eatingTime){
Score = Score + price;
UpdateScore();
}
}
public class ScoreManager : MonoBehaviour {
public float Score;
public Text scoreText;
// Use this for initialization
void Start () {
scoreText.text = "0";
}
public void UpdateScore()
{
scoreText.text = Score.ToString("2");
}
}
我尝试连接脚本,但是一旦创建了预制件,它就会删除脚本,因此分数不起作用。
我尝试过做一个静态变量,但是遇到了问题。我猜错了它的工作原理。
答案 0 :(得分:1)
你可以做几件事,但最好的办法可能就是做这样的事情:
public class CharacterControl
{
void Update()
{
GameObject.FindGameObjectByTag("Tag-of-scoremanager-").GetComponent <ScoreManager> ().Score += price;
}
}
另一种方法是将分数管理器作为检查器属性包括在内,如下所示:
ScoreManager manager;
然后将得分管理器预制件拖放到检查器中, 然后增加它只需:
manager.Score += price;