0 c# user-interface input unity-game-engine gameobject
我正在制作一个背包,我试图让它像《我的世界》一样,你只需按“E”,它就会打开,如果已经打开,他们就会关闭它。顺便说一句,我在 C# 中使用 Unity。
if (Input.GetKeyDown(backpackKey) && backpack.activeInHierarchy == false)
{
backpack.SetActive(true);
}
if (Input.GetKeyDown(backpackKey) && backpack.activeInHierarchy == true)
{
backpack.SetActive(false);
}
Run Code Online (Sandbox Code Playgroud)
您的两个 if 条件都将匹配:
要么使用else if
使两个块独占运行,要么..实际上你可以简单地做
if (Input.GetKeyDown(backpackKey))
{
// I would prefer using "activeSelf"
// If any parent is inactive your check might always return false even though the object
// itself is already set to active. Don't know if it has an impact on performance
// I just find it more convenient here since this is the value changed by "SetActive"
backpack.SetActive(!backpack.activeSelf);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15233 次 |
最近记录: |