UE4之python编程

python对大家来说是非常熟悉的一门编程语言,那么在工作中肯定要使用他啊,为什么呢?

1.操作步骤脚本化,不易出错。

2.易于修改,尤其是还在开发阶段,当然开发完毕之后可以翻译为C++代码即可,快速开发

其他就不在这里赘述啦。

一、获取UE4中的Asset

在ue4中,在ContentBrowser中的东西叫做Asset,在OutLiner中的物体叫做Actor,这点大家不要搞混。 如下图:(ContentBrowser)

 获取Asset的代码:

actor_class = unreal.EditorAssetLibrary.load_blueprint_class("/Game/BpActor")
# 该种方法为加载蓝图类的方法,且只能在\Game下的蓝图类,因为他不能Convert 不是以\Game为前缀的路径

world = unreal.EditorLevelLibrary.get_editor_world()
actor_object = unreal.load_object(world,'/Script/VCamCore.VCamComponent')
# 此方法适用于不是以\Game为前缀的路径的Asset

二、获取UE4 Level中的Actor

UE4的pythonAPI同样提供了一个方法

unreal.GameplayStatics.get_all_actors_of_class(world, actor_calss)

这就和上面获得ContentBrowser中Asset呼应上了,因为get_all_actors_of_class需要传进来一个类,所以我们就用上面获得到的类来获取level中所有的实例Actor,这也就和蓝图中的节点相同

 因为python API和蓝图API暴露的差不多,但是pythonAPI应该是要比蓝图多一点点的

函数返回的是一个Actor列表。

这样就拿到的了场景中的Actor,接下来我们就可以设置属性啦

actors = unreal.GameplayStatics.get_all_actors_of_class(world, actor_class)

actor_tags = actors[0].get_editor_property('tags')

 这个时候我们就可以查询官方文档啦,查看Actor到底有什么方法,该传进去什么样的参数

 三、获取Actor中的组件

在我们的实际使用过程中,肯定是多个组件拼装成为一个Actor的,所以下一步就是获取Actor中的组件,参考蓝图节点

首先获取Component的类,参考 :一、获取UE4中的Asset

# 获取class类
actor_object = unreal.load_object(world,'/Script/VCamCore.VCamComponent')

# 根据之前获取的Actor来查询传入的Class,这样就获取了组件
vcam = actors[0].get_components_by_class(actor_object)

接下来就可以对这个组件进行控制啦。

vcam[0].enabled = True

猜你喜欢

转载自blog.csdn.net/weixin_41363156/article/details/121067771