【问题标题】:Unity3d: How to script/code a gameObject such as a cube to teleport you onto another gameObject?Unity3d:如何编写/编写游戏对象(例如立方体)以将您传送到另一个游戏对象?
【发布时间】:2015-04-29 00:57:52
【问题描述】:

我是游戏开发行业的新手,我确实会查看教程和其他东西来帮助我,但这不是重点。我使用 Unity3d 版本 5 制作游戏。我正在制作我的第一款基于跑酷的游戏。我需要知道如何编码/编写游戏对象(例如立方体)来制作它,以便当您踩到它时,它会将您传送到另一个立方体上?就像在一些基本游戏中可能有熔岩一样,如果你掉入其中,它只会将你传送回关卡的开始。

【问题讨论】:

    标签: unity3d unityscript


    【解决方案1】:

    你需要这些:

    http://docs.unity3d.com/ScriptReference/Collider-isTrigger.html

    http://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html

    http://docs.unity3d.com/ScriptReference/Transform-position.html

    http://docs.unity3d.com/410/Documentation/ScriptReference/index.Accessing_Other_Game_Objects.html

    话虽如此,这些都是 Unity 的基础知识。我认为最好先深入研究一些教程,然后再尝试自己做任何事情。否则你最终会浪费时间试图弄清楚这些事情。

    【讨论】:

      【解决方案2】:

      如果您在阅读了统一文档后仍然想知道如何操作,这应该会对您有所帮助:

      1) 为玩家游戏对象添加一个碰撞器(如果尚未分配碰撞器)和“熔岩立方体”游戏对象。在“lava cube”游戏对象对撞机上选择“is Trigger”。制作一个新标签并将其放在“熔岩”游戏对象上。您可以将标签称为“熔岩”或任何您想要的标签

      2) 在播放器脚本中声明一个 Vector3 变量,其中包含您想要将播放器“传送”到的点的坐标。

      3) 在同一个脚本中,您必须使用 OnTriggerEnter(Collider) 来检测与 tag="lava" 的游戏对象的碰撞,如果您检测到这样的碰撞,您应该将 player.transform.position 设置为之前声明的 vector3;

      public Vector3 teleportTo;
      
      void Awake()
      {
          teleportTo = transform.position;
      }
      
      void OnTriggerEnter(Collider other)
      {
          if (other.tag == "lava")
          {
              transform.position = teleportTo;
          }
      }
      

      如果你只是想重启关卡,你可以让它变得更容易:

          void OnTriggerEnter(Collider other)
      {
          if (other.tag == "lava")
          {
              Application.LoadLevel (Application.loadedLevel);
          }
      }
      

      这是您可以做到的方法之一。正确分配和配置刚体、碰撞器、标签非常重要

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        • 2016-02-16
        相关资源
        最近更新 更多