【问题标题】:How can I randomly instantiate a prefab in a fixed array of colliders in Unity?如何在 Unity 的固定对撞机数组中随机实例化预制件?
【发布时间】:2019-02-13 17:34:49
【问题描述】:

我正在开发一个 Unity 游戏,并希望从地图上的 3 或 4 个可能位置中随机生成最终目标(带有一些网格和碰撞框的预制件)。

我知道我需要使用某种数组,并使其不会与其他资产相交。我只是无法想象解决方案。

谁能建议至少如何开始?

【问题讨论】:

  • 您的问题没有明确定义,但至少发布您所做的任何努力?例如,您可以使用一系列 Transform 对象并从中随机选择,所有这些对象的位置都是在创建关卡之前定义的

标签: c# unity3d


【解决方案1】:

1) 在统一编辑器中,在您希望生成目标的位置创建空游戏对象。

2) 在代码中,在负责生成最终目标的游戏逻辑 monobehavior 中,声明一个 GameObjects 的公共数组

3) 使用检查器,将空的 GameObjects 添加到您的游戏逻辑单一行为的数组中

4) 在代码中,随机生成目标并使用如下代码将其“附加”到世界上:

var rand = new Random();
i = rand.next(myGoalPositions.Length);
var goal = Object.Instantiate(myEndGoalPrefab, myGoalPositions[i], false );

要让它们不与任何东西相交...最简单的方法是构建你的世界,这样它们就不会与任何东西相交。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2017-12-23
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多