Во-первых, ошибка, которую вы получаете, состоит в том, что код, который вы показываете, не является допустимым кодом Python, чтобы изменить значение цвета, вам нужно иметь индекс ([0]
), прикрепленный к имени свойства, и значение для присвоения на другой стороне знака =
.
color[0] = 0.1
Можно присвоить одно и то же значение нескольким свойствам в одной строке -
color[0] = color[1] = color[2] = 0.2
Вы также можете назначить все четыре значения (цвет включает в себя альфа) свойству color, используя tuple -
red = blue = green = alpha = 0.2
color = (red, green, blue, alpha)
Теперь о том, что вы пытаетесь сделать -
Существует два способа доступа к данным блендера, bpy используется только для доступа к данным во время моделирования, текстурирования и т. Д.
Когда игровой движок работает, bpy недоступен, вам нужно использовать bge для доступа к любым данным из сценариев, которые вы назначаете контроллеру python.
Чтобы получить то, что вы пытаетесь сделать, сначала включите цвет объекта для материала, это можно найти в параметрах в настройках материала . Если этот параметр включен, вы можете настроить цвет объекта -
import bge
cont = bge.logic.getCurrentController()
own = cont.owner
own.color[0] = 0.2 # red
own.color[1] = 0.3 # green
own.color[2] = 0.4 # blue
Можно получить доступ к другим объектам, вы используете getCurrentScene()
, чтобы получить текущую сцену со списком объектов,
scn = bge.logic.getCurrentScene()
enemy = scn.objects['enemy']
Вы можете найти пример кода на многих страницах API для типов игровых движков и найдете blender.stackexchange - лучшее место для того, чтобы задавать вопросы блендерам.