Unity3d:如何编写/编写诸如立方体之类的游戏对象来将你传送到另一个游戏对象?

时间:2015-04-27 22:21:55

标签: unity3d unityscript

我对游戏开发行业很陌生,我会看一些教程和东西来帮助我,但除此之外。我使用Unity3d版本5来制作游戏。我正在制作我的第一款基于跑酷的游戏。我需要知道如何对诸如立方体之类的gameObject进行编码/编写脚本,以便当你踩到它时,它会将你传送到另一个立方体上?就像在一些基本的游戏中,也许有熔岩,如果你陷入其中,它只是传送回到关卡的开始。

2 个答案:

答案 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);
    }
}

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