2015-04-26 2 views
0

Я знаю, что есть способ узнать группу, в которой определенный объект находится в BGE. В API говорится, что вы используете KX_GameObject(SCA_IObject) и groupObject, чтобы получить группу, в которой находится объект, и groupMembers, чтобы получить список всех объектов в группе. Я попробовал много разных способов заставить его работать, но я всегда получаю сообщение об ошибке. Плеси может мне сказать, как это сделать?Как обрабатывать группы объектов в игровом движке блендера?

Вот lonk к API: http://blender.org/api/blender_python_api_2_73a_release/bge.types.KX_GameObject.html?highlight=group#bge.types.KX_GameObject.groupMembers

Вот код.

import bge 
from bge import logic 
import bpy 

cont = bge.logic.getCurrentController() 
own = cont.owner 
scene = logic.getCurrentScene() 
objs = scene.objects 

print(objs) 


#here I tried to get the list of members in the group 
group = bpy.data.groups["group"] 
print(group.groupMembers) 
#ERROR: 'Group' object has no attribute 'groupMembers' 


#here I tried to get the group object is in 
cube = bpy.data.objects["Cube"] 
print(cube.groupObject) 
#ERROR: 'Object' object has no attribute 'groupObject' 

Thanks.

+0

Не могли бы вы ellaborate _how_ ваша программа провалилась? Из документа вы пишете 'my_object.groupObject', чтобы получить _" объект группы, к которому принадлежит объект, или None, если объект не является частью группы "_ Это вызвало исключение? Вы получили «Нет», как ожидали чего-то? Вы уверены, что объект принадлежит группе? Могу ли я предложить вам написать [минимальную программу] (http://stackoverflow.com/help/mcve), демонстрирующую вашу проблему? –

+0

Я добавил код. Спасибо за повторное воспроизведение. –

+0

'group'is возможно (может быть?) Не экземпляр' KX_GameObject'. Попытайтесь более внимательно проверить свой объект 'group' (resp' cube), добавив что-то вроде 'print (type (group))', 'print (group)', 'print (group .__ dict __)'. –

ответ

0

.groupMembers только для объектов, которые являются дополнительным экземпляром группы

enter image description here

так, объект может не иметь членов группы, если она не была группа экземпляра объекта или группы экземпляра подобъектом.

как добавленный = own.scene.addObject ('GroupInstance', собственные, 0)

добавил = пустой

added.groupMembers = все объекты, добавленных с этим пустым

+0

Извините за поздний ответ. Поскольку я опубликовал этот вопрос, я узнал, что bpy не работает в игровом движке blender. Таким образом, это никогда не сработает, но ваша альтернатива является допустимым вариантом. –

Смежные вопросы