gpt4 book ai didi

c# - 当我在 Unity 中输入立方体时尝试加载新场景

转载 作者:行者123 更新时间:2023-11-30 20:16:26 26 4
gpt4 key购买 nike

所以我有这段代码可以进入一个新场景:

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);
}

}

}

然后我将此脚本添加到多维数据集并选择它作为触发器。然后我输入我希望它也发送给我的场景,但是当我走进它时什么也没有发生。我尝试了不同的变体,但它似乎不起作用。

我正在使用的角色是一个名为 man in suit 的统一 Assets ,但我已将其标签选择为“Player”。任何建议都会很棒!

最佳答案

不会调用触发器的处理程序

作为Sunimal已经注意到您需要更正拼写错误。

  void OnTriggerEnter(Collider other) {
if (other.CompareTag ("Player")) {
SceneManager.LoadScene (loadLevel);
}
}

确保您的场景包含在build设置中并选中

如您在下面的屏幕截图中所见,我已将 SampleScene 添加到我的build设置中。有两种方法可以将场景添加到构建中

  1. 通过单击“添加打开的场景”,您可以添加场景目前对该列表开放。
  2. 将场景从 ProjectView 拖放到列表中

Screenshot of the build settings

确保您的 SceneName 设置正确

在我的例子中,您的 loadLevel 字段需要具有值“Scenes/SampleScene”。

 [SerializeField] private string loadLevel;

玩家需要一个碰撞器

当您使用 OnTriggerEnter 方法时,您的 Player 对象需要附加某种 Collider。这可以是 BoxCollider、SphereCollider 或其他一些 Collider。 请注意,需要选中“Is Trigger”复选框。否则它不会作为触发器。

编辑:谢谢Eddge纠正我。参见 this回答关于触发器的更深入的解释。

image of collider component

以编程方式确保在 LoadScenes 组件旁边有一个 BoxCollider 组件

您可以添加 RequireComponent属性在你的类(class)。它基本上确保您将给定类型添加为组件。当您添加此脚本时,这也会自动向对象添加一个盒子碰撞器。

[RequireComponent(typeof(BoxCollider))]
public class LoadScenes : MonoBehaviour {
/// your other code is here
}

感谢Sunimal对于这个提示!

如果那没有解决问题怎么办?

如果所有这些都没有帮助,请提供您的 Player 对象的检查器的屏幕截图。这样我们就可以看到哪些组件附加到该对象以及它们是如何“配置”的

关于c# - 当我在 Unity 中输入立方体时尝试加载新场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49178539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com