Я знаю, что есть способ узнать группу, в которой определенный объект находится в 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.
Не могли бы вы ellaborate _how_ ваша программа провалилась? Из документа вы пишете 'my_object.groupObject', чтобы получить _" объект группы, к которому принадлежит объект, или None, если объект не является частью группы "_ Это вызвало исключение? Вы получили «Нет», как ожидали чего-то? Вы уверены, что объект принадлежит группе? Могу ли я предложить вам написать [минимальную программу] (http://stackoverflow.com/help/mcve), демонстрирующую вашу проблему? –
Я добавил код. Спасибо за повторное воспроизведение. –
'group'is возможно (может быть?) Не экземпляр' KX_GameObject'. Попытайтесь более внимательно проверить свой объект 'group' (resp' cube), добавив что-то вроде 'print (type (group))', 'print (group)', 'print (group .__ dict __)'. –