【问题标题】:How to teleport player to different scene via trigger?如何通过触发器将玩家传送到不同的场景?
【发布时间】:2019-10-10 16:03:10
【问题描述】:

我使用了最传统的方法,但它不起作用。不启动响应。

我已将一个刚体 2d 对撞机(质量为 0.0001,没有阻力或重力)附加到我的玩家精灵,并检查了一个 2d 盒式对撞机。

旁注:Outdoor1" 是我想将我的玩家传送到的场景的名称。

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class TeleportToScene : MonoBehaviour
{
    [SerializeField] private string newScene;

    void OnTriggerStay2D(Collider2D other)
    {
        if (other.CompareTag ("Player"))
        {
                SceneManager.LoadScene("Outdoor1"); 

我希望它能够越过盒子对撞机并改变场景,但没有任何反应。也没有错误消息。

【问题讨论】:

  • 您是否尝试过调试?标签是否正确? OnTriggerEnter 有调用吗?
  • 哦,你的脚本是附加到播放器对象的吧?
  • @derHugo 我试过调试,OnTriggerEnter 根本没有被调用。首先,我的脚本只附加到对撞机立方体上,但现在你提到它,我将它附加到两者上,但仍然没有进展。
  • 它必须附加到不是触发器的对象上。如果两个对撞机都是触发器,则它根本不起作用 - 其中一个必须不是触发器

标签: c# unity3d


【解决方案1】:

要制作 OnTriggerStay2D,您需要设置一个 collider 2D 来触发作为脚本 TeleportToScene 的对象和一个 Rigidbody2D

所以你的场景将是,2 个对象:

1.播放器 - 置换 - Collider2D(不触发) - 标记“玩家”

2.传送器 - TeleportToScene.cs - Collider2D(触发器) - Rigidbody2D(运动学)

希望有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多