找回密码
 注册帐号

扫一扫,访问微社区

Unity商业问题 如何将数组里的每个元素加上标签?

21
回复
323
查看
[ 复制链接 ]
排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
2019-11-17 21:46:46 显示全部楼层 阅读模式
20蛮牛币
这些物体是代码生成的,放在一个GameObjec[]里,数据量大,有没有可以实现自动添加标签的方法。


另外不添加标签的话,如何摧毁GameObject[]里面的元素。


比如鼠标点击生成的物体,让它消失掉。


我试了下Destory(this.gameObject)这个方法对生成的物体是无效的


这是生成Cube的一个数组
[O4_[]NQF6OV$S)2]MJS@0O.png

回复

使用道具 举报

7日久生情
2198/5000
排名
1410
昨日变化

17

主题

261

帖子

2198

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
48492
好友
8
蛮牛币
10341
威望
0
注册时间
2014-10-11
在线时间
1014 小时
最后登录
2019-12-13
QQ
2019-11-18 08:57:15 显示全部楼层
获取你鼠标点击的物体 进行销毁
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-18 09:43:35 显示全部楼层
试过了,就是那个 onmousedown 然后destory(this.gameObject)没有效果

还有没有其他的方法呀?目前我只能想到添加标签的方式了。
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-18 09:57:13 显示全部楼层
liyan_ 发表于 2019-11-18 08:57
获取你鼠标点击的物体 进行销毁

我试过了racast 还有onmousedown destory(this.gameObject)都失败了
回复

使用道具 举报

5熟悉之中
901/1000
排名
4151
昨日变化

15

主题

254

帖子

901

积分

Rank: 5Rank: 5

UID
231366
好友
11
蛮牛币
1844
威望
0
注册时间
2017-7-10
在线时间
276 小时
最后登录
2019-12-12
2019-11-20 10:18:23 显示全部楼层
我觉得不是方法本身有问题,而是你的写法不对
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-20 11:21:35 显示全部楼层
安生李 发表于 2019-11-20 10:18
我觉得不是方法本身有问题,而是你的写法不对

方法是没问题的,我用单个gameObject测试过了,主要是我无法获取数组里的gameObject,因为这个数组是别人写的,所以我想试试给数组元素添加标签的方式来获取
回复

使用道具 举报

5熟悉之中
777/1000
排名
4594
昨日变化

1

主题

89

帖子

777

积分

Rank: 5Rank: 5

UID
56032
好友
2
蛮牛币
1706
威望
0
注册时间
2014-11-18
在线时间
367 小时
最后登录
2019-12-13
2019-11-20 22:26:32 显示全部楼层
你的问题是不是,删除了物体以后,再遍历数组或者获取数组总数时,和删除之前一样,没有变。如果是这样那就在删除后马上调一下:unload,  然后再调GC清除
回复

使用道具 举报

0

主题

16

帖子

31

积分

Rank: 1

UID
335892
好友
0
蛮牛币
41
威望
0
注册时间
2019-11-14
在线时间
15 小时
最后登录
2019-12-11
2019-11-21 09:36:21 显示全部楼层
加标签就不应该用数组 太麻烦
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-21 09:38:37 显示全部楼层
MN2014mini 发表于 2019-11-20 22:26
你的问题是不是,删除了物体以后,再遍历数组或者获取数组总数时,和删除之前一样,没有变。如果是这样那就 ...

还没有到那一步,目前是数组里面的生成的物体无法获取,删除不了。相当于一个网格物体,生成了许许多多立方体,我想让部分立方体消失掉,由于这些立方体我添加不了标签,所以不能用标签的方式去摧毁,我就用了Destory(this.gameObject)的方法,然后鼠标点击的时候,这些立方体依然还在。但是我用其他的非矩阵内的物体测试了,就可以让它消失掉。所以我觉得数组生成的也有可能不是gameObject类型的,因此无法获取到。但是生成之后的图像确实是一个个立方体堆积起来的,其实就是体素。

所以我想问问是否可以使用代码给生成的(体素数量是根据物体形状的大小而确定的)每个体素添加上标签,这样的话是否可以使用标签的方法来实现摧毁。
回复

使用道具 举报

0

主题

16

帖子

31

积分

Rank: 1

UID
335892
好友
0
蛮牛币
41
威望
0
注册时间
2019-11-14
在线时间
15 小时
最后登录
2019-12-11
2019-11-21 09:39:11 显示全部楼层
我写个代码试试 一会回你
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-21 09:44:03 显示全部楼层
cg末 发表于 2019-11-21 09:39
我写个代码试试 一会回你

好的,非常感谢的解答。如果需要的话,我可以把工程文件发给你,测试用的。
回复

使用道具 举报

0

主题

16

帖子

31

积分

Rank: 1

UID
335892
好友
0
蛮牛币
41
威望
0
注册时间
2019-11-14
在线时间
15 小时
最后登录
2019-12-11
2019-11-21 10:08:01 显示全部楼层
destory(this.gameObject) 确实可以  但是那个元素就为空了     你贴的代码是Add  这不是list吗 这不重要 - -    你要是想加标签 可以在生成物体的是时候把物体的name改成在数组或者集合中的下标   或者生成的时候在物体下面加个脚步 里面写各种属性
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-21 10:08:43 显示全部楼层
好像问题找到了,生成的一大堆体素(上万个cube)没有添加collider,所以新的问题来了,我如何使用脚本给这些体素添加collider组件。
回复

使用道具 举报

0

主题

16

帖子

31

积分

Rank: 1

UID
335892
好友
0
蛮牛币
41
威望
0
注册时间
2019-11-14
在线时间
15 小时
最后登录
2019-12-11
2019-11-21 10:11:42 显示全部楼层
AddComponent<Collider>();
回复

使用道具 举报

排名
48141
昨日变化

2

主题

26

帖子

75

积分

Rank: 2Rank: 2

UID
312148
好友
0
蛮牛币
62
威望
0
注册时间
2019-1-18
在线时间
43 小时
最后登录
2019-12-6
楼主 2019-11-21 10:23:32 显示全部楼层

ok,我试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则