Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

How to make CFrame.LookAt() only look through with one axis?

As in the question how would you make it so LookAt will only rotate through one axis instead of all of them? I tried just putting .Y at the end but errored and said "CFrame expected got number", I also tried to put the look at in part of a vector3 like this Vector3.new(0,LookAt,0) but since it was part of a loop it would just start spinning which is not what I wanted.

NPCCharacter.PrimaryPart.CFrame  = CFrame.lookAt(NPCCharacter.HumanoidRootPart.Position, Character.HumanoidRootPart.Position).Y

1 answer

✓ Accepted answer

You can change the Y component of the target position to be the same as the NPC's Y position to have it only take X and Z into account. Modifying your code would give the following:

local npcPosition = NPCCharacter.HumanoidRootPart.Position
local targetPosition = Character.HumanoidRootPart.Position

NPCCharacter.PrimaryPart.CFrame = CFrame.lookAt(
	npcPosition,
	Vector3.new(targetPosition.X, npcPosition.Y, targetPosition.Z)
)

1 comment

0

tysm

This discussion is preserved as it was. New answers, comments, and votes are closed.