feat(camera): add camera zone volume for dynamic config switching
- Add BP_CameraZone actor for trigger-based camera transitions * Constructor accepts TengriCameraConfig parameter * OnBeginOverlap: Apply zone's camera config to character * OnEndOverlap: Restore character's default camera config - Designed for level design workflow * Place zones in world with BoxCollision volumes * Assign different configs per zone (e.g. combat, puzzle, cinematic) * Automatic smooth transitions via CameraManager interpolation Example use cases: - Combat arena: Switch to over-the-shoulder view on entry - Puzzle room: Switch to side-scroller/fixed angle view - Cinematic area: Apply custom camera settings for dramatic effect Enables seamless camera behavior changes without code modifications.main
parent
ea132ed92b
commit
98a7722a91
|
|
@ -0,0 +1,25 @@
|
|||
// Content/Camera/BP_CameraZone.ts
|
||||
|
||||
import { Actor } from '/Content/UE/Actor.ts';
|
||||
import type { TengriCharacter } from '/Source/TengriPlatformer/Character/TengriCharacter.ts';
|
||||
import type { TengriCameraConfig } from '/Source/TengriPlatformer/Camera/Core/TengriCameraConfig.ts';
|
||||
|
||||
export class BP_CameraZone extends Actor {
|
||||
constructor(ZoneConfig: TengriCameraConfig) {
|
||||
super();
|
||||
|
||||
this.ZoneConfig = ZoneConfig;
|
||||
}
|
||||
|
||||
EventActorBeginOverlap(OtherActor: Actor): void {
|
||||
(OtherActor as TengriCharacter).CameraManager.SetCameraConfig(
|
||||
this.ZoneConfig
|
||||
);
|
||||
}
|
||||
|
||||
EventActorEndOverlap(OtherActor: Actor): void {
|
||||
(OtherActor as TengriCharacter).CameraManager.SetCameraConfig();
|
||||
}
|
||||
|
||||
private readonly ZoneConfig: TengriCameraConfig;
|
||||
}
|
||||
Binary file not shown.
BIN
Content/Levels/TestLevel.umap (Stored with Git LFS)
BIN
Content/Levels/TestLevel.umap (Stored with Git LFS)
Binary file not shown.
|
|
@ -10,7 +10,7 @@ export class TengriCameraComponent extends ActorComponent {
|
|||
this.CurrentConfig = new TengriCameraConfig();
|
||||
}
|
||||
|
||||
public SetCameraConfig(NewConfig: TengriCameraConfig): void {
|
||||
public SetCameraConfig(NewConfig?: TengriCameraConfig): void {
|
||||
console.log(NewConfig);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue