【发布时间】:2015-04-29 00:57:52
【问题描述】:
我是游戏开发行业的新手,我确实会查看教程和其他东西来帮助我,但这不是重点。我使用 Unity3d 版本 5 制作游戏。我正在制作我的第一款基于跑酷的游戏。我需要知道如何编码/编写游戏对象(例如立方体)来制作它,以便当您踩到它时,它会将您传送到另一个立方体上?就像在一些基本游戏中可能有熔岩一样,如果你掉入其中,它只会将你传送回关卡的开始。
【问题讨论】:
标签: unity3d unityscript
我是游戏开发行业的新手,我确实会查看教程和其他东西来帮助我,但这不是重点。我使用 Unity3d 版本 5 制作游戏。我正在制作我的第一款基于跑酷的游戏。我需要知道如何编码/编写游戏对象(例如立方体)来制作它,以便当您踩到它时,它会将您传送到另一个立方体上?就像在一些基本游戏中可能有熔岩一样,如果你掉入其中,它只会将你传送回关卡的开始。
【问题讨论】:
标签: unity3d unityscript
你需要这些:
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 的基础知识。我认为最好先深入研究一些教程,然后再尝试自己做任何事情。否则你最终会浪费时间试图弄清楚这些事情。
【讨论】:
如果您在阅读了统一文档后仍然想知道如何操作,这应该会对您有所帮助:
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);
}
}
这是您可以做到的方法之一。正确分配和配置刚体、碰撞器、标签非常重要
【讨论】: