我想在两个脚本中使用一个 int 并在第二个脚本中减少它
I want to use one int in two scripts and decrease it in the second one
我想在两个脚本中使用这个 int:public int wood;
我希望两个脚本中的 int 值相同。
这是我的第一个脚本:
public class Tree :
MonoBehaviour { public int wood;
private void OnTriggerEnter2D(Collider2D collision)
{
wood += 1;
}
}
这是我希望木材在其中使用的第二个脚本:
public class Base : MonoBehaviour {
private void OnTriggerEnter2D(Collider2D collision)
{
}
}
我想降低 OnTriggerEnter2D
中的木材价值。我该怎么做?
您可以将按钮组件添加到您的游戏对象。(要在代码中使用此组件,请使用 Button btn = Gameobject.GetComponent<Button>();
。要检测按钮上的点击,您可以使用按钮具有的 onclick
事件。
void Start(){
btn.onClick.AddListener(ButtonClicked);
}
void ButtonClicked(){
//code
}
你也可以添加OnMouseDown
and OnMouseUp
函数来创建按钮(这只需要碰撞器组件,而不需要按钮组件。
void OnMouseDown(){
clicking = true;
}
void OnMouseUp(){
clicking = false;
}
单击按钮时会引发事件。
所以你需要注册当这个事件触发时你想做什么。
有多种方法,但其中一种可能是:
buttonVariable.onClick.AddListener(OnButtonDoSomething);
使用 lambda expresion 将是:
button.onClick.AddListener(() => OnButtonDoSomething());
因此您需要在任何脚本中的 Start
、OnEnable
或 Awake
方法上声明它。然后有一个 Button
引用,这样你就可以存储你的 buttonVariable
并最终声明你的方法 OnButtonDoSomething
.
为了解决您的问题,您将存储一个名为 buttonGotClicked
的布尔变量,并在您新创建的方法中将此布尔变量设置为:
private void OnButtonDoSomething()
{
buttonGotClicked = true;
}
那么你可以if(buttonGotClicked)...
我想在两个脚本中使用这个 int:public int wood;
我希望两个脚本中的 int 值相同。
这是我的第一个脚本:
public class Tree :
MonoBehaviour { public int wood;
private void OnTriggerEnter2D(Collider2D collision)
{
wood += 1;
}
}
这是我希望木材在其中使用的第二个脚本:
public class Base : MonoBehaviour {
private void OnTriggerEnter2D(Collider2D collision)
{
}
}
我想降低 OnTriggerEnter2D
中的木材价值。我该怎么做?
您可以将按钮组件添加到您的游戏对象。(要在代码中使用此组件,请使用 Button btn = Gameobject.GetComponent<Button>();
。要检测按钮上的点击,您可以使用按钮具有的 onclick
事件。
void Start(){
btn.onClick.AddListener(ButtonClicked);
}
void ButtonClicked(){
//code
}
你也可以添加OnMouseDown
and OnMouseUp
函数来创建按钮(这只需要碰撞器组件,而不需要按钮组件。
void OnMouseDown(){
clicking = true;
}
void OnMouseUp(){
clicking = false;
}
单击按钮时会引发事件。 所以你需要注册当这个事件触发时你想做什么。
有多种方法,但其中一种可能是:
buttonVariable.onClick.AddListener(OnButtonDoSomething);
使用 lambda expresion 将是:
button.onClick.AddListener(() => OnButtonDoSomething());
因此您需要在任何脚本中的 Start
、OnEnable
或 Awake
方法上声明它。然后有一个 Button
引用,这样你就可以存储你的 buttonVariable
并最终声明你的方法 OnButtonDoSomething
.
为了解决您的问题,您将存储一个名为 buttonGotClicked
的布尔变量,并在您新创建的方法中将此布尔变量设置为:
private void OnButtonDoSomething()
{
buttonGotClicked = true;
}
那么你可以if(buttonGotClicked)...