赞
踩
python对大家来说是非常熟悉的一门编程语言,那么在工作中肯定要使用他啊,为什么呢?
1.操作步骤脚本化,不易出错。
2.易于修改,尤其是还在开发阶段,当然开发完毕之后可以翻译为C++代码即可,快速开发
其他就不在这里赘述啦。
在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的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中的组件,参考蓝图节点
首先获取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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。