Unity程序化地图生成代码< iniChance ? 1 : 0;段作用问询
代码片段功能与逻辑说明
你问的< iniChance ? 1 : 0是C#三元条件运算符的组成部分,整行代码是程序化地形生成里的初始随机填充逻辑,作用是按设定概率给每个地形格子赋值。
具体执行流程
- 第一步先调用Unity内置的
Random.Range(1, 101)生成随机整数:注意这个接口传整型参数时上限是不包含的,所以实际返回值范围是1到100的闭区间,不会出现101。 - 第二步做布尔判断:校验刚生成的随机数是否小于配置参数
iniChance。 - 第三步就是你问的
? 1 : 0部分,属于三元运算符的固定语法规则:- 如果前面的判断结果为真(随机数 < iniChance),当前
[x,y]坐标的地形格子赋值为1 - 如果前面的判断结果为假(随机数 ≥ iniChance),当前坐标的地形格子赋值为
0
- 如果前面的判断结果为真(随机数 < iniChance),当前
实际运行效果
这个写法本质是按比例做随机填充:如果iniChance配置为20,那么每个格子就有20%概率被标记为1(通常用来代表障碍物、特殊地形块),80%概率标记为0(代表普通空地)。双层for循环遍历完所有宽高坐标后,就能得到一张符合设定占比的随机初始地形网格,后续一般会接网格平滑、连通区域检测之类的逻辑做进一步加工。
内容的提问来源于stack exchange,提问作者Noye
相关产品推荐
相关产品推荐

