Unity OnTriggerEnter2d() 不工作 |试图在场景之间切换
Unity OnTriggerEnter2d() Not working | Trying to switch between Scenes
我是 unity 的新手,我一直在尝试让这个场景切换正常工作,但是当玩家点击它时,触发器似乎没有激活。 debug.Log 什么也没做,所以我很困惑。我知道我的术语可能没有意义,所以让我展示一些图片。如果您能提供帮助,那将非常有帮助。谢谢!
这是我要触发的对象的检查面板
这是玩家的检查员
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneChangeScript : MonoBehaviour
{
public int iLevelToLoad;
public string sLevelToLoad;
public bool useIntegerToLoadLevel = false;
void start()
{
}
void update()
{
}
private void onTriggerEnter2D(Collider2D other)
{
if(other.CompareTag("Player"))
{
Debug.Log("Somethings Being Triggered!");
LoadScene();
}
}
void LoadScene()
{
if(useIntegerToLoadLevel)
{
SceneManager.LoadScene(iLevelToLoad);
}
else
{
SceneManager.LoadScene(sLevelToLoad);
}
}
}
Unity Monobehavior Lifecycle methods 以大写开头,C# 方法区分大小写。因此需要修正以下方法才能被Unity使用:
start
=> Start
update
=> Update
onTriggerEnter2D
=> OnTriggerEnter2D
由于 C# 惯例是方法以大写字母开头,如果您假设它以大写字母而不是小写字母开头,则不太可能遇到此问题。不过最好确认一下!此外,如果您正在使用 Visual Studio,您可以通过花时间学习一些快捷方式来避免这些痛苦。
嘿,我刚刚发现您将 bool
useIntegerToLoadLevel
初始化为 false
并且您正在使用此条件加载 if
语句中的场景和bool
永远不会设置为 true
。
尝试在进入触发器时将此bool
设置为true
,即在OnTriggerEnter2D
方法中,应该肯定有效。这是一个任何人都可能犯的小错误。
我是 unity 的新手,我一直在尝试让这个场景切换正常工作,但是当玩家点击它时,触发器似乎没有激活。 debug.Log 什么也没做,所以我很困惑。我知道我的术语可能没有意义,所以让我展示一些图片。如果您能提供帮助,那将非常有帮助。谢谢!
这是我要触发的对象的检查面板
这是玩家的检查员
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneChangeScript : MonoBehaviour
{
public int iLevelToLoad;
public string sLevelToLoad;
public bool useIntegerToLoadLevel = false;
void start()
{
}
void update()
{
}
private void onTriggerEnter2D(Collider2D other)
{
if(other.CompareTag("Player"))
{
Debug.Log("Somethings Being Triggered!");
LoadScene();
}
}
void LoadScene()
{
if(useIntegerToLoadLevel)
{
SceneManager.LoadScene(iLevelToLoad);
}
else
{
SceneManager.LoadScene(sLevelToLoad);
}
}
}
Unity Monobehavior Lifecycle methods 以大写开头,C# 方法区分大小写。因此需要修正以下方法才能被Unity使用:
start
=>Start
update
=>Update
onTriggerEnter2D
=>OnTriggerEnter2D
由于 C# 惯例是方法以大写字母开头,如果您假设它以大写字母而不是小写字母开头,则不太可能遇到此问题。不过最好确认一下!此外,如果您正在使用 Visual Studio,您可以通过花时间学习一些快捷方式来避免这些痛苦。
嘿,我刚刚发现您将 bool
useIntegerToLoadLevel
初始化为 false
并且您正在使用此条件加载 if
语句中的场景和bool
永远不会设置为 true
。
尝试在进入触发器时将此bool
设置为true
,即在OnTriggerEnter2D
方法中,应该肯定有效。这是一个任何人都可能犯的小错误。