【问题标题】:How to change the main object when user levelup?用户升级时如何更改主对象?
【发布时间】:2019-05-04 15:30:57
【问题描述】:

我有一个被玩家摧毁的物体,当用户摧毁整个物体时,他完成了关卡。所以我想在不改变场景的情况下加载下一个对象(可能是预制件?)。如果必须加载下一个对象,最好的方法是,例如,如果它们具有更高级别的更高编号,例如 Cube1、Cube2 ...

但是为了限制代码中的干扰,最好这样做,以便所有引用都通过将包含所有对象的标签,还是有更好的方法?我使用下面的代码自己加载了新对象,但我说的是计数点、对象的移动等。

    GameObject instance = Instantiate(Resources.Load("Cubes2", typeof(GameObject))) as GameObject;

如果以下每个对象都有相同的标签,如何依次简化它们的加载?如果玩家升到 3 级,Cube3 将不得不加载,如何更改此代码以连续加载而不为 100 个对象中的每个对象添加 100 行连续代码?

【问题讨论】:

    标签: c# unity3d game-development


    【解决方案1】:

    考虑到您的 level3 将构建索引为 3,那么您可以尝试使用 buildIndex。否则您可以使用变量来存储当前级别编号并将其与“Cubes”字符串连接。

    int LevelNum;
    GameObject instance = Instantiate(Resources.Load("Cubes"+ LevelNum, typeof(GameObject))) as GameObject;
    

    您可以在升级玩家等级后立即更改 levelNum。

    如果有帮助,请告诉我。

    编辑:删除分号。

    【讨论】:

    • 这将只是一个场景,其中级别 3 的含义只是将对象从预制件更改为 3。没有改变场景。
    • 然后一个变量来指示级别号并在 Resources.load 中使用它。
    猜你喜欢
    • 2014-07-23
    • 2015-06-12
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2022-10-20
    • 2021-07-17
    相关资源
    最近更新 更多