策划的工作甩给你了,凭啥
有道理 我试试。 
一般不会的,不信你可以随便试试,而且完全可以设置一个强制停止的时间

对的,不需要手动去摆,太像夯货 (虎先锋说的不是我说的)
哈哈 好的好的 
别太给策划脸了,毫不客气的说,大多策划都TM沙雕
直接策划配表不是美滋滋 
感同身受 
用AI帮你卜了一卦
求:
cocos creator 中,我有多个不同预制体,他们形状不规则,现在需要实现:
1、预制体角度随机向左偏或者向右偏,但是向左或向右偏移的角度不能大于60度
2、全部预制体位置随机
3、全部预制体不能重叠,最好上下左右的最小间隔距离为5,最大间隔距离为10
解:
const { ccclass, property } = cc._decorator;
@ccclass
export default class RandomizePrefabs extends cc.Component {
// 在编辑器中设置的预制体数组
@property([cc.Prefab])
prefabs: cc.Prefab[] = [];
// 父节点,用于放置预制体
@property(cc.Node)
parentNode: cc.Node = null;
onLoad() {
// 场景加载时调用,随机化预制体
this.randomizePrefabs();
}
randomizePrefabs() {
const placedNodes: cc.Node[] = []; // 已放置的节点数组
const minDistance = 5; // 最小间隔距离
const maxDistance = 10; // 最大间隔距离
this.prefabs.forEach(prefab => {
let newNode: cc.Node;
let position: cc.Vec2;
let isOverlapping: boolean;
do {
// 实例化预制体
newNode = cc.instantiate(prefab);
// 获取随机位置
position = this.getRandomPosition();
newNode.setPosition(position);
// 获取随机角度
newNode.angle = this.getRandomAngle();
// 检查是否与已放置的节点重叠
isOverlapping = this.checkOverlap(newNode, placedNodes, minDistance, maxDistance);
} while (isOverlapping); // 如果重叠则重新生成位置和角度
// 将新节点添加到父节点中
this.parentNode.addChild(newNode);
// 将新节点添加到已放置节点数组中
placedNodes.push(newNode);
});
}
// 获取父节点范围内的随机位置
getRandomPosition(): cc.Vec2 {
const x = Math.random() * this.parentNode.width - this.parentNode.width / 2;
const y = Math.random() * this.parentNode.height - this.parentNode.height / 2;
return cc.v2(x, y);
}
// 获取 -60 到 60 度之间的随机角度
getRandomAngle(): number {
const angle = Math.random() * 120 - 60; // -60 到 60 度
return angle;
}
// 检查新节点是否与已放置节点重叠
checkOverlap(newNode: cc.Node, placedNodes: cc.Node[], minDistance: number, maxDistance: number): boolean {
for (let node of placedNodes) {
const distance = newNode.position.sub(node.position).mag();
if (distance < minDistance || distance > maxDistance) {
return true; // 如果距离小于最小间隔或大于最大间隔,则认为重叠
}
}
return false; // 没有重叠
}
}
代码解释:
-
属性声明:
-
prefabs:在编辑器中设置的预制体数组。
-
parentNode:用于放置预制体的父节点。
-
onLoad 方法:
-
场景加载时调用 randomizePrefabs 方法。
- randomizePrefabs 方法:
-
遍历 prefabs 数组,为每个预制体生成随机位置和角度,并检查是否重叠。
-
如果重叠则重新生成位置和角度,直到不重叠为止。
-
getRandomPosition 方法:
-
生成父节点范围内的随机位置。
-
getRandomAngle 方法:
-
生成 -60 到 60 度之间的随机角度。
- checkOverlap 方法:
- 检查新节点是否与已放置节点重叠,确保距离在最小和最大间隔之间。
一、看需求,如果策划是要固定位置
那就做个关卡编辑器,让他自己摆
二、如果策划说随机
1、刚体形式:每个物件做成刚体扔到里面,记录最后稳定后的信息。
2、随机生成位置、角度,然后过滤掉重合的内容。
这里好像没有限制区域范围(还有预制体的宽高),我自己补了试试,看看这卦灵不灵 
这种应该是策划的活吧
自己配 花时间不说 配完给策划 不满意还得重新来
现在很多公司都要求熟练掌握AI助手
成都有公司招聘的开发员,要求必须使用AI辅助开发,实现快速开发小游戏
你还是早点入手吧,把AI当成老师,尽管问
对你有很大帮助
现在我这里的需求是 这个是每个摆放类关卡的入口, 这个是需要符合所有这个摆放类关卡的入口, 我的想法是在每个摆放类关卡中去手动摆放好, 这里复用就可以。 所以这里我想偷懒。。看看能不能自动随机, 我就只用拿图,不用手动摆了 
我用的这些免费ai 好像卜卦都不太行。
我试试 
完全可以写一个 通用类复用,只管新建预制体就行
AI只是辅助,小细节可以通过自己修改或者追加问题让AI修改
懒人必备,主要能学习到很多自己想不到的知识
长期积累下来,也是很好的经验
要的 谢谢老哥 
写个随机摆放算法就好了。根据数量在指定区域内生成,while循环里判断如果生成点位和已生成的道具有重叠就再重新找个位置,不重叠就继续生成下一个。
