UE4中,一个PlayerController同时只能控制一个Actor,如果要实现RTS游戏中的那种多个Actor同时移动,需要Spawn出来多个Controller(PlayerController或者AIController等,具体看你需求),每个Controller去Possess一个Actor,然后通过控制这多个Controller来实现移动。
如何创建PlayerController,这个帖子讲了一种方式:
How do you place APlayerCharacter onto APlayerStart and take control?
In CreateLocalPlayer's case, the call chain you're looking for is: UGameInstance::CreateLocalPlayer ULocalPlayer::SpawnPlayActor UWorld::SpawnPlayActor AGameMode::PostLogin AGameMode::StartNewPlayer AGameMode::RestartPlayer AGameMode::GetDefaultPawnClassForController
相关代码:
for( int32 a = 0; a < MaxPlayerCount; a++ ) { ULocalPlayer* localPlayer; if( a == 0 ) { localPlayer = gameInstance->GetFirstGamePlayer(); } else { FString createLocalPlayerError; localPlayer = gameInstance->CreateLocalPlayer( a, createLocalPlayerError, true ); } FString url; FString spawnPlayActorError; localPlayer->SpawnPlayActor( url, spawnPlayActorError, currentWorld ); FURL urlSpawn2; FString spawnError; PostLogin( localPlayer->PlayerController ); currentWorld->SpawnPlayActor( localPlayer, ENetRole::ROLE_None, urlSpawn2, localPlayer->GetUniqueNetIdFromCachedControllerId(), spawnError ); StartNewPlayer( localPlayer->PlayerController ); RestartPlayer( localPlayer->PlayerController ); /*ABasePlayer* playerActor = ( ABasePlayer* )GetDefaultPawnClassForController( localPlayer->PlayerController ); ABasePlayerController* playerController = ( ABasePlayerController* )localPlayer->PlayerController; playerController->SetUpInput( playerActor, a );*/ }
但是上面的RestartPlayer找不到相关文档,怎么使用不是很清楚,另外一个替代RestartPlayer的方式:
http://aigo.iteye.com/blog/2285835
ULocalPlayer
https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Engine/ULocalPlayer/index.html
UWorld::SpawnPlayActor
https://docs.unrealengine.com/latest/INT/API/Runtime/Engine/Engine/UWorld/SpawnPlayActor/index.html
可参考官方的塔防项目:
https://docs.unrealengine.com/latest/INT/Resources/SampleGames/StrategyGame/index.html
另外一片关于UE4中实现RTS类型游戏移动逻辑的文档(蓝图):
RTS Movement and Basic Behaviors on Unreal Engine 4
http://blog.meltinglogic.com/2015/04/unreal-rts-rpg-movement-behaviors/
相关推荐
UE4 对象池插件 Actor对象池
这是ue4 4.22.1 engine 版本的例子。...你需要先用ue4建立一个名字为a2的工程,然后用zip里面的source plugins 覆盖你建好的工程的目录。以达到迁移代码的目的。注意,可能建好的材质,要拖到场景里才生效。
在实际使用中我们可能会用到UE4遍历场景中的Actor。 注意: 1.不要在构造函数中遍历。 2.如果涉及到RPC和属性复制,一定是在第一次复制完成后再进行遍历,防止role没同步过来。 3.写在构造函数里可能会为空GetWorld...
(平面游戏)此图文能教你让Actor向着鼠标(看向鼠标)的位置旋转,一般以游戏人物为中心(但都不影响),看之前先学习基础UE4教程,应用于人物Pawn蓝图中。
行动者 Actor Controller - An advanced character controller 0.77.zip行动者 Actor Controller - An advanced character controller 0.77.zip 1.适合学生学习研究参考 2.适合个人学习研究参考 3.适合公司开发项目...
ue4自定义Struct面板和Class面板
Actor - 一个可以放置在世界中或者在世界中产生的对象。这包括类似于Players(玩家)、Weapons(武器)、 Trash.StaticMeshes(静态网格物体)、Emitters(编辑器)、 Infos以及 Sounds(声效)等。 ………………
Unity的第三人称插件,可以作为工具类扩展使用,亲测Unity4版本以上都可以使用,有需要的可以拿下
行动者 Actor Controller - An advanced character controller
UE4.20,简单使用ARKit,打包Apple应用,实现单指触屏,在真实地板上生产静态Actor
Clooney是一个用于Web的actor库
并行计算 多线程 actor 协程 process
GeoReference-UE4插件该插件提供了游戏坐标和地理坐标之间的参考。 该概念的核心是GeoRegion,它定义了世界原点的纬度和经度。 此外,还提供了以米为单位的地图尺寸,以计算WSG84和UTM中的边界坐标。 此信息可用于将...
Aerojet是swift的一个actor模型实现
除非为了在Actor Core.vi的中不断监视或输送某些值,当然此时就需要解决如何在适当时刻停止while循环的问题了。本例中未予以演示,但可以从本例的全局变量的g_bool中得到参考,while循环到底应该在何时被结束。
Actor Model的理解从一个情境假设,并开始推演。我们不妨将Actors认为是一个个人,规定这些人员不能互相进行语言沟通,他们仅仅通过邮件方式进行交流。假定两个人,一个作为老师,一个作为学生。学生每天早上给老师...
GamePlay架构之Actor和Component 藉着UObject提供的元数据、反射生成、GC垃圾回收、序列化、 编辑器可见,Class Default Object等,UE可以构建一个Object 运行的世界
udp-ue4虚幻引擎4的便捷ActorComponent UDP包装器。对于您的用例,这可能不是最明智的包装方法,但是它打算与具有类似工作流程的共存。将内置的ue4 udp功能包装为具有发送和接收功能的actor组件。确认可以使用node....
UEActor转换器用于将 UE3 演员转换为 UE4 的实用程序
PAK包含一个音效资源,一个模型资源,一个材质资源,一个actor。 资源不包含依赖插件,请前往epic商城购买正版插件或其他渠道获取! 购买后有任何问题请私信,看到立即回复,资源无效可联系退款!