我对游戏开发行业很陌生,我会看一些教程和东西来帮助我,但除此之外。我使用Unity3d版本5来制作游戏。我正在制作我的第一款基于跑酷的游戏。我需要知道如何对诸如立方体之类的gameObject进行编码/编写脚本,以便当你踩到它时,它会将你传送到另一个立方体上?就像在一些基本的游戏中,也许有熔岩,如果你陷入其中,它只是传送回到关卡的开始。
答案 0 :(得分:4)
你需要这些:
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 :(得分:0)
如果您在阅读统一文档后仍想知道如何操作,这应该会对您有所帮助:
1)向玩家游戏对象添加一个碰撞器(如果没有分配碰撞器)和"熔岩立方体"游戏对象。选择"是触发"在"熔岩立方体" gameobject对撞机。制作一个新标签并将其放在"熔岩"游戏对象。你可以拨打#34; lava"或者你想要的任何东西
2)在播放器脚本中声明一个Vector3变量,其坐标为您想要传送的点#24;传送"玩家来。
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);
}
}
这是你可以做到的方法之一。正确分配和配置刚体,碰撞器,标签非常重要