How to create a billboard that looks at the player. For example, on my computer the billboard looks at me and on my friend’s computer it looks at him. Now I have an algorithm that looks at the player, but now I have a bug, the billboard at one moment looks at me and at another moment looks at my friend. How can i fix this? And i can fix that now?
RotatingObjectsTagInit(Player : player):void=
set RotatingObjects = GetCreativeObjectsWithTag(rotate_by_player{})
block:
for(Obj : RotatingObjects):
if(Text := billboard_device[Obj]):
spawn:
Rotate(Text, Player)
Rotate(Text : billboard_device, Player : player)<suspends>:void=
loop:
if(PlayerObj := Player.GetFortCharacter[], IsVisible = false):
if(Floor[Distance(PlayerObj.GetTransform().Translation, Text.GetTransform().Translation) / 100.0] < 50):
PlayerPosition := PlayerObj.GetTransform().Translation
ObjectPosition := Text.GetTransform().Translation
ObjectFront := PlayerObj.GetTransform().Rotation.GetLocalForward() + ObjectPosition
Player2D := vector3{X := PlayerPosition.X, Y := PlayerPosition.Y, Z := 0.0}
Object2D := vector3{X := ObjectPosition.X, Y := ObjectPosition.Y, Z := 0.0}
ObjectFront2D := vector3{X := ObjectFront.X, Y := ObjectFront.Y, Z := 0.0}
if(LookDirection := (ObjectPosition - PlayerPosition).MakeUnitVector[]):
Yaw := -RadiansToDegrees(ArcTan(LookDirection.X, LookDirection.Y))
Pitch := 0.0
Roll := 0.0
NewRotation := MakeRotationFromYawPitchRollDegrees(Yaw, Pitch, Roll)
if(Text.TeleportTo[ObjectPosition, NewRotation]):
Sleep(0.01)
else Sleep(2.0)
else:
break