UE4中Component表达的是功能的概念,Actor有的功能,都可以用Component来写(比如战士有的武器攻击技能组件),包括Actor的WASD移动功能都是组件来实现的
一定要警惕,不要在Component中写游戏业务逻辑的代码
类人形生物用Character,载具有自己的一套移动组件,非人形生物用Pawn
Character与Pawn的区别是,Character的移动组件等人形生物的功能是写好了的,Pawn并没有,需要自己去写。
Pawn继承自Actor,并定义了三块基本的模板方法接口
1、可被Controller控制
2、PhysicsCollision表示
3、MovementInput的基本响应接口
Controller与Pawn的关系就是提线的木偶,Controller就是提线的背后操纵者,Pawn就是木偶
有一个继承自Pawn的DefaultPawn,里面提供了默人的DefaultPawnMovementComponent、spherical CollisionComponent和StaticMeshComponent。
还有一个继承自Pawn的SpectatorPawn,它关闭了StaticMesh的显示,提供了USpectatorPawnMonvement(不带重力漫游),碰撞也设置到了Spectator通道,用于观战(想象一下CF观战等)
同样继承自Pawn的Character提供了像人一样行走的CharacterMovementConponent,尽量贴合的CapsuleComponent,再加上骨骼上的蒙皮网格。
总结:Controller里面接收外界的输入,Pawn中的组件来实现这个接收的反应,最后用Pawn来调用组件里写好的方法