吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1540|回复: 24
收起左侧

[求助] Unity3D制作游戏生成敌人的一个问题

  [复制链接]
基督山 发表于 2022-3-11 02:06
敌人生成的位置用Random.Range()来随机获取,但有时会在箱子的坐标内出现,然后敌人就会卡在里面,有什么解决办法吗? 1.png
[C#] 纯文本查看 复制代码
 
 // 生成敌人
            Transform obj = (Transform)Instantiate(m_enemy, new Vector3(Random.Range(-3.05f, 44.5f), -15.85f, Random.Range(-11.29f, 31.64f)), Quaternion.identity);
       // 获取敌人的角本
            EnemyWarriors enemyWarriors = obj.GetComponent<EnemyWarriors>();
            // 初始化敌人
            enemyWarriors.Init(this);

免费评分

参与人数 1热心值 +1 收起 理由
夫子点灯 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

李杨 发表于 2022-3-11 07:49
不懂 请下一位大佬回答
bhbhxy 发表于 2022-3-11 07:55
用一个while循环,对随机生成的坐标进行判断,如果和箱子有重叠,那么持续while循环直到生成位置不重叠为止。

免费评分

参与人数 1吾爱币 +1 收起 理由
基督山 + 1 我很赞同!

查看全部评分

明月相照 发表于 2022-3-11 08:37
楼上的对,另外补充下,也可在生成的范围上重新选择小些,不重的部分。

免费评分

参与人数 1热心值 +1 收起 理由
基督山 + 1 我很赞同!

查看全部评分

 楼主| 基督山 发表于 2022-3-11 08:44
bhbhxy 发表于 2022-3-11 07:55
用一个while循环,对随机生成的坐标进行判断,如果和箱子有重叠,那么持续while循环直到生成位置不重叠为止 ...

我也是这么想的,就是有点麻烦。而且怎么获取箱子的坐标方便一点呢
明月相照 发表于 2022-3-11 08:50
基督山 发表于 2022-3-11 08:44
我也是这么想的,就是有点麻烦。而且怎么获取箱子的坐标方便一点呢

箱子的Transform不是固定的吗?
 楼主| 基督山 发表于 2022-3-11 09:03
明月相照 发表于 2022-3-11 08:50
箱子的Transform不是固定的吗?

我想要在箱子那个正方形区域里不让他生成,得获取箱子的顶点位置和它们之间的距离
 楼主| 基督山 发表于 2022-3-11 09:07
明月相照 发表于 2022-3-11 08:50
箱子的Transform不是固定的吗?

只能手动拉个cube来测一下了
Dream_Peng 发表于 2022-3-11 09:07
我有一个想法,不需要用while循环,  就是在 生成的时候, 判断是否在其他物体内,如果在,则往旁边偏移所在物体的大小坐标,这样所有的敌人都会在物体外 而不是物体内,  还有记住别出自己的地图了
 楼主| 基督山 发表于 2022-3-11 09:16
Dream_Peng 发表于 2022-3-11 09:07
我有一个想法,不需要用while循环,  就是在 生成的时候, 判断是否在其他物体内,如果在,则往旁边偏移所 ...

物体的大小坐标怎么获取呢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表