如何从 Blender 游戏引擎中的特定层访问对象
How to access objects from specific layer in blender game engine
我想制作一款具有渐进关卡生成功能的游戏。我在另一层上有一些关卡的不同部分,我在第一层使用 python 控制器中的添加对象生成它们。
问题是当第一层中有多个同名对象时。然后,Blender 不是访问另一层上的原始对象,而是从第一层生成对象。
如何访问对象
这是一些代码
#import
import bge
from bge import logic
#define add
add = logic.getCurrentScene().addObject
#add object
add('objectName',' location',0)
如果您想直接访问一个对象,您可以创建一个列表并访问它:
import bge
from random import random
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
#Your list
objlist = [obj for obj in scene.objects]
entity = objlist[obj]
add = scene.addObject(obj,loc,0)
add(entity,' location',0)
或者直接调用对象:
import bge
from random import random
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
#direct access
entity = scene.objects['obj']
add = scene.addObject(obj,loc,0)
add(entity,' location',0)
我想制作一款具有渐进关卡生成功能的游戏。我在另一层上有一些关卡的不同部分,我在第一层使用 python 控制器中的添加对象生成它们。
问题是当第一层中有多个同名对象时。然后,Blender 不是访问另一层上的原始对象,而是从第一层生成对象。
如何访问对象
这是一些代码
#import
import bge
from bge import logic
#define add
add = logic.getCurrentScene().addObject
#add object
add('objectName',' location',0)
如果您想直接访问一个对象,您可以创建一个列表并访问它:
import bge
from random import random
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
#Your list
objlist = [obj for obj in scene.objects]
entity = objlist[obj]
add = scene.addObject(obj,loc,0)
add(entity,' location',0)
或者直接调用对象:
import bge
from random import random
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()
#direct access
entity = scene.objects['obj']
add = scene.addObject(obj,loc,0)
add(entity,' location',0)