如何从 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)