【发布时间】:2021-11-24 01:16:27
【问题描述】:
我对 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);
}
}
}
【问题讨论】:
-
您是否尝试将 debug.log 放在条件之外以查看它是否甚至进入方法?甚至更好.. 只需在 if 语句上放一个断点并在调试模式下运行? C# 也区分大小写。
onTriggerEnter2D与OnTriggerEnter2D不同。可能统一甚至没有开始使用这种方法。我看到你对start和update做了同样的事情 -
@OmarAbdelBari 非常感谢,我已经为这个问题困扰了大约一天。我需要确保我更加关注案例。
-
Visual Studio 有一些自动完成功能,您应该习惯于使用它。此外,以大写开头的方法是 C# 约定。我会花一些时间学习 VS 快捷方式。大大加快了工作流程..
-
一定会的,再次感谢您的快速响应。
标签: c# unity3d game-development