C# 当我进入Unity中的立方体时尝试加载新场景
所以我有这个代码来进入一个新的场景:C# 当我进入Unity中的立方体时尝试加载新场景,c#,unity3d,C#,Unity3d,所以我有这个代码来进入一个新的场景: using System.Collections; using UnityEngine; // add this line to use the SceneManagment library using UnityEngine.SceneManagement; public class LoadScenes : MonoBehaviour { [SerializeField] private string loadLevel; voi
using System.Collections;
using UnityEngine;
// add this line to use the SceneManagment library
using UnityEngine.SceneManagement;
public class LoadScenes : MonoBehaviour {
[SerializeField] private string loadLevel;
void onTriggerEnter(Collider other) {
if (other.CompareTag ("Player")) {
SceneManager.LoadScene (loadLevel);
}
}
}
然后我将这个脚本添加到多维数据集中,并选择它作为触发器。然后我输入我希望它也发送给我的场景,但当我走进它时,什么也没有发生。我尝试过不同的变化,但似乎不起作用
我使用的角色是一个名为“西服男人”的统一资产,但我选择了它的标签为“玩家”。任何建议都很好 不会调用触发器的处理程序
正如allready所指出的,您需要修复输入错误
void OnTriggerEnter(Collider other) {
if (other.CompareTag ("Player")) {
SceneManager.LoadScene (loadLevel);
}
}
确保在生成设置中包含并选中场景
正如您在下面的屏幕截图中所看到的,我在构建设置中添加了一个SampleScene。有两种方法可以将场景添加到构建中
[RequireComponent(typeof(BoxCollider))]
public class LoadScenes : MonoBehaviour {
/// your other code is here
}
谢谢你的提示
如果这不能解决问题呢?
如果所有这些都没有帮助,请提供您的Playerobject检查器的屏幕截图。这样,我们可以看到哪些组件连接到该对象,以及它们是如何“配置”的
要使用SceneManager加载场景,必须确保场景处于生成设置中(根据Tobias的回答)
触发
在所有的软件开发中,案例都很重要,而且非常重要ontriggenter
与ontriggenter
不同,还请注意ontriggenter(碰撞列)
与ontriggenter(碰撞列)
要使用任何触发方法,必须有三件事:
触发器事件被发送到带有刚体的对象和触发器的任何对象,在两个对象都是触发器的情况下,两个对象都将收到它。我注意到的第一件事是
onTriggerEnter
应更改为onTriggerEnter
@JamesRees如果您单击播放器,您将查看检查器并查看它是否有碰撞。您还应验证您尝试加载的场景是否在建筑中设置。下面有一个很好的答案,请查看。我建议在Build settings>scenes in Build中通过索引加载场景,这样更显式,更不容易出错。这是一个完整的答案。一个简单的添加我们可以添加[RequireComponent(typeof(BoxCollider))]公共类加载场景:MonoBehavior{
将自动向游戏对象添加组件好主意!我添加了这一点玩家不需要作为触发器的碰撞器(只是碰撞器)。为了命名OnTiggerEnter,两个物体都需要一个对撞机,其中一个必须是触发器,另一个必须有一个刚体。这是根据文档:谢谢更正。我对触发器的解释投赞成票:)我试图更正答案中的错误
[RequireComponent(typeof(BoxCollider))]
public class LoadScenes : MonoBehaviour {
/// your other code is here
}