我是游戏开发行业的新手,我确实会看一些教程和东西来帮助我,但这不是重点。我使用Unity3d版本5来制作游戏。我正在制作我的第一个基于跑酷的游戏。我需要知道如何编码/编写一个gameObject,比如一个立方体,这样当你踩到它时,它会将你传送到另一个立方体上?就像在一些基本的游戏中,可能有熔岩,如果你掉进去了,它只会传送你回到关卡的起点。
发布于 2015-04-28 06:30:49
您需要以下内容:
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的基础。我认为在尝试自己做任何事情之前,最好开始钻研一些教程。否则,你最终会浪费时间试图弄清楚这些事情。
发布于 2015-04-29 00:57:52
如果你在阅读unity文档后仍然想知道如何做,这应该会对你有所帮助:
1)添加一个对撞器到玩家游戏对象(如果还没有分配对撞器的话)和“熔岩立方体”游戏对象。选择“熔岩立方体”游戏对象对撞机上的“触发”。创建一个新的标签,并把它放在“熔岩”游戏对象上。你可以把标签叫做“熔岩”或者任何你想要的东西。
2)在播放器脚本中声明一个Vector3变量,该变量带有您想要将播放器“传送”到的点的坐标。
3)在同一个脚本中,你必须使用OnTriggerEnter(碰撞器)来检测与带有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);
}
}这是你可以做到的其中一种方法。正确分配和配置刚体、对撞机、标签非常重要
https://stackoverflow.com/questions/29907006
复制相似问题