카메라 개체는 3D 세계의 보기를 정의합니다. 실행 중인 경험에서 각 클라이언트는 자신의 로컬 Class.Workspace 에 있는 자체 카메라 개체를 가지고 있으며, Class.Workspace.CurrentCamera 속성을 통해 액세스할 수 있습니다.
가장 중요한 카메라 속성은 다음과 같습니다.
Camera.CFrame 카메라의 위치 및 방향을 나타내는 클래스.
Camera.CameraType 는 경험의 카메라 스크립트에 의해 읽고 카메라가 각 프레임을 업데이트할 방법을 결정합니다.
Camera.CameraSubject 는 경험의 카메라 스크립트에 의해 읽고 카메라가 어떤 개체를 팔로우하는지 결정합니다.
Camera.FieldOfView 는 관측 가능한 세계의 가시적 범위를 나타냅니다.
Camera.Focus 는 카메라가 보고 있는 것을 나타냅니다. 이 속성이 설정되어 있는 것이 중요합니다. 특정 시각적 개체가 더 세부적이고 집중 점에 더 자주 업데이트되기 때문에 이 속성이 설정되어 있는 것이 중요합니다.
카메라 사용자 정의 방법에 대한 자세한 내용은 카메라 사용자 정의를 참조하십시오.
요약
속성
Class.Camera의 Camera , 3D 세계에서 위치 및 방향을 정의합니다.
카메라 스크립트에 의해 읽을 Enum.CameraType를 지정합니다.
카메라의 수직 시야 필드 각도를 설정합니다.
카메라의 垂直 시야각을 설정합니다.
Class.Camera 의 시점 크기 변경에 대한 FOV 값을 결정합니다.
Roblox의 그래픽 시스템이 우선 순위를 매기는 3D 공간을 설정합니다.
VR 기기사용하여 플레이어의 머리 움직임을 자동으로 추적할지 여부를 토글합니다.
VR를 사용할 때 사용자의 세계 관점의 크기를 설정합니다.
가장 긴 보기 포트 축을 따라 카메라의 시야각을 설정합니다.
카메라 근처 평면의 Z 오프셋을 스터드 단위로 설명합니다.
플레이어가 VR 기기사용하는 동안 Camera.CFrame 속성의 기울기 및 롤을 적용할지 여부를 토글합니다.
Roblox 클라이언트의 장치 금고 영역 크기.
메서드
캐스트 포인트 사이의 시야 라인을 가리는 BaseParts 배열을 반환합니다.
Class.Camera가 렌더링되는 실제 Camera을 반환하여 적용된 롤과 VR 장치의 영향을 계산합니다.
Class.Camera 에 사용하는 Camera:SetRoll() 를 사용하여 카메라의 Z축 주위에 대한 현재 롤 또는 회전을 반환합니다.
화면의 위치(픽셀)에서 Ray 단위를 생성하고, Camera 카메라 방향으로 정렬된 위치에서 설정된 깊이(피소트)에 따라 Class.Camera 합니다. 카메라 방향으로 정렬된 위치에 대한 GUI 인센트를 계산합니다.
카메라의 Z축 주위에 적용된 현재 회전을 설정합니다.
뷰포트(픽셀)의 위치에서 Ray 을 만듭니다(Camera 의 방향으로 지정된 깊이), CoreUISafeInsets 에 대한 단위를 계산하지 않습니다. 2>Class.Camera2> 의 경우에 대한 참조는 5>Enums.ScreenInsets|CoreUIS
Datatype.Vector3 의 화면 위치 및 깊이를 반환합니다. worldPoint 및 이 점이 화면 영역 내에 있는지 여부를 계산합니다. GUI 인서트에 대한 GUI 계정.
Datatype.Vector3worldPoint 및 이 점이 화면 범위 내에 있는지 여부를 반환합니다. 스크린 범위에 대한 기타 GUI 인센트는 계산되지 않습니다.
이벤트
Class.Camera 가 Camera:Interpolate()를 사용하여 인터폴레이션을 완료했을 때 발생합니다.
속성
CFrame
이 속성은 Class.Camera 의 3D 세계에서 위치 및 방향을 정의하는 데 사용됩니다. 일부 변환, 예를 들어 머리 회전과 같은,은 이 속성에 반영되지 않으므로 카메라의 Class.Camera:
이 속성을 설정하면 카메라를 이동할 수 있습니다. 그러나 기본 카메라 스크립트도 이를 설정하므로 다음 중 하나를 선택해야 합니다.
카메라 Camera.CameraType 를 Enum.CameraType.Scriptable 로 설정하여 기본 카메라 스크립트가 카메라의 CFrame 을 업데이트하지 않도록 합니다. 이 메서드는 가장 간단하고 권장됩니다.
기본 카메라 스크립트를 대체 스크립트로 완전히 대체하십시오. 이 접근 방식은 기본 카메라 기능이 필요하지 않은 경우에만 권장됩니다.
Class.Camera를 위치하고 방향을 지정하는 가장 직관적인 방법은 CFrame.lookAt() 생성기를 사용하는 것입니다. 다음 예에서 Camera는 생성기에 위치하여
local camera = workspace.CurrentCameracamera.CameraType = Enum.CameraType.Scriptablelocal pos = Vector3.new(0, 10, 0)local lookAtPos = Vector3.new(10, 0, 0)workspace.CurrentCamera.CFrame = CFrame.lookAt(pos, lookAtPos)
카메라를 위에 표시된 대로 배치할 수 있지만, 원하는 방식으로 애니메이션화하여 한 CFrame 에서 다른 위치로 원활하게 이동할 수 있습니다. 이를 위해 다음을 할 수 있습니다.
Class.RunService:BindToRenderStep() 및 CFrame:Lerp() 메서드를 사용하여 카메라의 위치/방향을 설정합니다.
카메라의 위치/방향을 애니메이션하는 Tween 을 생성하고 플레이합니다.
local Players = game:GetService("Players")local TweenService = game:GetService("TweenService")local camera = workspace.CurrentCameracamera.CameraType = Enum.CameraType.Scriptablelocal player = Players.LocalPlayerlocal character = player.Characterif not character or character.Parent == nil thencharacter = player.CharacterAdded:Wait()endlocal pos = camera.CFrame * Vector3.new(0, 20, 0)local lookAtPos = character.PrimaryPart.Positionlocal targetCFrame = CFrame.lookAt(pos, lookAtPos)local tween = TweenService:Create(camera, TweenInfo.new(2), {CFrame = targetCFrame})tween:Play()
CameraSubject
CameraSubject 는 다양한 Instances 을 수락합니다. 기본 카메라 스크립트는 사용 가능한 설정에 대해 다르게 응답합니다.
기본적으로 카메라 스크립트는 현재 상태의 로컬 캐릭터의 Humanoid 를 따르고, Humanoid.CameraOffset 를 통해 현상수의 현상수를 계산합니다.
Class.BasePart 로 설정하면 카메라 스크립트가 위치를 따라 이동하며, 위치가 VehicleSeats 인 경우 垂直 오프셋이 있습니다.
CameraSubject 를 nil 로 설정할 수 없습니다. 이렇게 하면 시도하는 것으로 이전 값으로 되돌아갑니다.
CameraSubject를 기본값으로 복원하려면 로컬 캐릭터의 Humanoid에 설정하십시오.
local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
local function resetCameraSubject()
if workspace.CurrentCamera and localPlayer.Character then
local humanoid = localPlayer.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
workspace.CurrentCamera.CameraSubject = humanoid
end
end
end
CameraType
기본 Roblox 카메라 스크립트에는 몇 가지 내장 동작이 있습니다. 이 속성을 설정하면 다양한 Enum.CameraType 동작 사이에서 전환됩니다. 일부 카메라 유형에는 올바르게 작동하려면 유효한 Camera.CameraSubject가 필요합니다.
카메라 유형이 CameraType 로 설정된 경우 카메라가 이동하거나 업데이트되지 않습니다. 카메라를 수동으로 배치하고 정렬하는 방법에 대한 자세한 내용은 Enum.CameraType.Scriptable 을 참조하십시오.
CameraType 설정 중 제외 Enum.CameraType.Scriptable 속성은 카메라의 1> Class.Camera.Focus1> 값이 설정된 개체의 위치를 나타냅니다.
DiagonalFieldOfView
카메라가 수직 방향(시야 포트에서 시야 포트의 반대 방향)에서 볼 수 있는 각도를 설정합니다. 시야 포트에 대한 자세한 내용은 FieldOfView 참조하십시오.
일부 장치에서 메모리 부족이나 스크린 컷아웃으로 전체 화면 영역이 가려질 수 있으므로 필드 오브 뷰가 표시되는 경우 DiagonalFieldOfView 렌더링으로 전체 화면 영역을 나타내는 경우가 있습니다. 자세한 내용은 Camera
FieldOfView
FieldOfView 속성은 카메라가 가로 방향으로 몇 도를 볼 수 있는지 설정합니다. 이 속성은 1과 120 사이의 범위를 클래핑하며 기본적으로 70에 대해 100% 왜곡되지 않습니다. 매우 낮거나 높은 시야각은 플레이어를 혼란스럽게 할 수 있으므로 권
유니폼 크기 조정이 적용되므로 가로와 세로 모두 화면의 비율에 따라 항상 관련됩니다. 참고: 유니폼 크기 조정은 항상 해제됩니다.
FieldOfView (FOV)의 권장 사용 사례는 다음과 같습니다.
- 예를 들어 망원경을 사용할 때 시야를 줄이면 확대 효과를 줄 수 있습니다.
- 플레이어가 "질주"하는 동안 FOV를 늘리면 컨트롤이 부족하다는 인상을 줄 수 있습니다.
일부 장치에서 몸에 해당하는 부분에 대해 렌더링하는 FieldOfView 렌더링의 전체 화면 영역을 나타내는 필드 오브 뷰를 나타냅니다. 자세한 내용은 Camera를 참조하십시오.
FieldOfViewMode
카메라의 시야각(FOV)을 업데이트하여 ViewportSize 변경 사항을 반영해야 합니다. FieldOfViewMode 의 값은 상수로 유지됩니다.
예를 들어, 이 속성이 Enum.FieldOfViewMode.Vertical로 설정되면 가로 포브가 뷰포트 크기를 조정할 때 업데이트되지만 세로 포브는 고정됩니다. 이 속성이 Enum.FieldOfViewMode.Diagonal로 설정되면 가로 포브와 세로 포브가 모두 수정되어 세로 포브를 고정
Focus
엔진이 수행하는 특정 그래픽 작업, 예를 들어 조명 업데이트와 같은, 완료하는 데 시간이나 컴퓨팅 노력이 필요할 수 있습니다. 카메라의 초점 속성은 엔진이 이러한 작업을 수행할 때 3D 공간의 어느 영역에 우선하는지 알려��
Roblox 카메라 스크립트는 일반적으로 Focus
포커스 는 카메라의 위치나 방향에 영향을 주지 않습니다. 자세한 내용은 Camera.CFrame 참조.
HeadLocked
VR 기기사용하여 플레이어의 머리 이동을 자동으로 추적하는 카메라를 전환합니다. true (기본), 엔진은 Camera.CFrame 와 사용자의 머리 Enum.UserCFrame 를 결합하여
local UserInputService = game:GetService("UserInputService")local camera = workspace.CurrentCameralocal headCFrame = UserInputService:GetUserCFrame(Enum.UserCFrame.Head)headCFrame = headCFrame.Rotation + headCFrame.Position * camera.HeadScale-- 이것은 Camera:GetRenderCFrame()과 동일합니다.local renderCFrame = camera.CFrame * headCFrame
다음과 같은 이유로 이 속성을 끄지 않도록 권장합니다.
- 적절한 헤드 추적 솔루션이 추가되지 않으면 플레이어는 이동 장애를 경험할 수 있습니다.
- Roblox 엔진은 머리 잠김 이 진실인 경우 대기 시간 최적화를 수행합니다.
또 보기
- VRService:GetUserCFrame() 이 있으면 머리의 CFrame를 얻을 수 있습니다.
- VRService:RecenterUserHeadCFrame() 는 VR 기기현재 위치 및 방향으로 머리를 최적화하는 데 사용됩니다.
- 사용자의 머리와 결합된 Camera:GetRenderCFrame()을 반환하는 Class.Camera:GetRenderCFrame() 함수.
HeadScale
HeadScale 은 VR를 사용할 때 사용자의 세계 관점의 크기를 조정합니다.
VR의 스터드 크기는 0.3 meters / HeadScale 이며, 이는 사용자의 시점에서 VR 장치를 사용할 때 세계가 좁게 보이는 경우가 있음을 의미합니다. 예를 들어, 1미터 높이의 부품은 VR 플레이어에게 0.6미터의 높이
이 속성은 자동으로 VRService.AutomaticScaling 으로 조정되어 플레이어의 관점을 아바타의 크기와 일치시킵니다. 자신이 HeadScale 을 제어하거나 사용자 캐릭터를 사용하도록 전환하려면 VRService.AutomaticScaling 을 2>
이 속성은 Humanoid.HeadScale 와 혼동하지 마십시오, 이는 NumberValue 를 가진 Humanoid 를 제어하기 위해 부모로 지정됩니다.
MaxAxisFieldOfView
MaxAxisFieldOfView 속성은 카메라가 가장 긴 보기 포트에 대해 볼 수 있는 각도를 설정합니다.
가장 긴 축이 가로 축일 때 이 속성은 FieldOfView 속성과 비슷하게 작동합니다. 이 경우 장치가 포트레이트 지향이 될 때 가장 긴 축이 가로 축입니다. 이 경우 Camera의 수직 뷰 필드의
NearPlaneZ
NearPlaneZ 속성은 카메라의 근접 평면이 스터드 단위로 얼마나 멀리 있는지 설명합니다. 근접 평면은 카메라의 Camera.CFrame 앞에 있는 기하학 평면입니다. 이
VRTiltAndRollEnabled
이 속성은 플레이어가 VR 기기사용하는 동안 Camera.CFrame 속성에서 기울기 및 롤을 적용할지 여부를 토글합니다.
이동 질병을 예방하려면 지평선이 레벨상태로 유지되어야 합니다. VR 장치를 사용하는 동안 플레이어의 뷰를 기울이고 스크롤하면 플레이어의 물리적 공간과 가상 공간 사이에서 연결이 해제될 수 있습니다. 이동 방향을 변경하면 플레이어가 균형을 잃거나 메괄기를 경험할 수 있습니
이러한 이유로 일반적으로 이 속성을 비활성화하는 것이 좋습니다, 당신이 이 효과에 대해 충분히 테스트하지 않은 경우. 심지어 슬라이트 및 롤을 활성화했더라도 플레이어가 항상 안정적인 참조 프레임을 가질 수 있도록 하려면 플레이어가 항상 자신의 물리적 공간에 도움이 될 수 있는
ViewportSize
ViewportSize 는 현재 화면에 있는 장치 금고 영역의 크기를 반환합니다. 이 영역은 Roblox 상단 표시 줄 영역을 포함하지만 장치 노치 또는 화면 절단을 포함하지 않는 직사각형입니다. Class.Camera.ViewportSize|ViewportSize
위에 표시된 것처럼 ViewportSize 는 절단기나 노치가 있는 디스플레이에서 전체
마지막으로, ViewportSize 이 카메라에서 렌더링하는 실제 뷰포트 크기가 아니라는 점을 참고하십시오. 또한, Camera.FieldOfView 및 Camera.DiagonalFieldOfView
카메라 업데이트
Class.Camera.ViewportSize|ViewportSize 은 현재 Class.Workspace. CurrentCamera 에 의해 각 프레임 동안 업데이트되는 ViewportSize 을 가지고
메서드
GetPartsObscuringTarget
이 메서드는 BaseParts 배열을 반환하지만 카메라의 Camera.CFrame 및 Vector3 위치에 대해 라인을 가려낸 상태에서 라인을 가려��
castPoints 매개 변수는 배열의 Vector3 위치로 주어집니다. 주어진 배열의 크기가 임의 순서로 지정되며 추가 레이캐스트 데이터가 제공되지 않습니다. 히트 위치, 재료 또는 표면 정보와
local camera = workspace.CurrentCameralocal castPoints = {Vector3.new(0, 10, 0),Vector3.new(0, 15, 0)}local ignoreList = {}local partsObscuringTarget = camera:GetPartsObscuringTarget(castPoints, ignoreList)
Class.Terrain 이 캐스트 포인트를 가립니다면, BaseParts 는 캐스트 포인트 사이의 캐스트 포인트를 가립니다. 캐스트 포인트 가 반환되지 않으면 캐스트 포인트 사이의 캐스트 포인트가 반환됩니다.
매개 변수
Class.Instance|Instances 배열이 있어야 하며 후손도 포함되어야 합니다.
반환
카메라의 BaseParts 과 Camera.CFrame 사이의 시야 라인을 가리는 배열의 castPoints .
코드 샘플
local Workspace = game:GetService("Workspace")
local camera = Workspace.CurrentCamera
local function XRay(castPoints, ignoreList)
ignoreList = ignoreList or {}
local parts = camera:GetPartsObscuringTarget(castPoints, ignoreList)
for _, part in parts do
part.LocalTransparencyModifier = 0.75
for _, child in pairs(part:GetChildren()) do
if child:IsA("Decal") or child:IsA("Texture") then
child.LocalTransparencyModifier = 0.75
end
end
end
end
XRay({ Vector3.new() })
GetRenderCFrame
이 함수는 CFrame의 렌더링된 실제 Camera을 반환하므로 플레이어의 뷰에서 최상의 성능을 발휘합니다. 이 함수는 Camera.CFrame의 속성에 적용
예를 들어, VR을 사용할 때 Camera는 다음 CFrame에 실제로 렌더링됩니다.
local UserInputService = game:GetService("UserInputService")local camera = workspace.CurrentCameralocal headCFrame = UserInputService:GetUserCFrame(Enum.UserCFrame.Head)headCFrame = headCFrame.Rotation + headCFrame.Position * camera.HeadScalerenderCFrame = camera.CFrame * headCFrame
카메라의 렌더 CFrame 는 Camera.HeadLocked 속성이 진실인 경우에만 머리를 위해 변경됩니다.
반환
Class.Camera 이 렌더링되고 있습니다.
GetRoll
이 함수는 현재 롤이 Camera 에 적용된 롤을 라디언트로 반환합니다. Camera:SetRoll() 는 카메라의 Z 축 주위에서 회전을 정의합니다.
이 함수는 Camera:SetRoll() 함수를 사용하여 적용된 롤만 반환합니다. 카메라의 Camera.CFrame에 롤이 수동으로 적용된 경우 카운트되지 않습니다. 실제 롤의 Camera 를 얻으려면 다음 스냅 코드를 사용할 수 있습니다.
local function getActualRoll()
local camera = workspace.CurrentCamera
local trueUp = Vector3.new(0, 1, 0)
local cameraUp = camera:GetRenderCFrame().upVector
return math.acos(trueUp:Dot(cameraUp))
end
반환
현재 롤 Camera:SetRoll() 에 적용된 롤.
코드 샘플
local currentRoll = math.deg(workspace.CurrentCamera:GetRoll()) -- Gets the current roll of the camera in degrees.
if currentRoll ~= 20 then
workspace.CurrentCamera:SetRoll(math.rad(20)) -- If the camera isn't at 20 degrees roll, the roll is set to 20 degrees.
end
ScreenPointToRay
이 함수는 화면의 2D 위치(정의된 피소드)에서 유닛 Ray 를 생성하고, 기기 인서트에 대한 GUI 계산을 위해 2D 위치의 화면 Ray 원래점으로부터 시작합니다. Vector3 는 제
이 함수는 GUI 삽입을 인정하므로 해당 GUI 요소(예: 상단 표시 줄)에 적용된 오프셋이 계산됩니다. 즉, 지정된 화면 위치가 상단 표시 줄 아래의 왼쪽 상단 모서리에 시작합니다. 왼쪽 상단 모서리가 아닌 다른 식별된 함수에 대해서는 Class.
만들어진 Ray는 단위 광선이므로 길이는 단위입니다. 더 긴 광선을 만들려면 팔로잉수행할 수 있습니다.
local camera = workspace.CurrentCameralocal length = 500local unitRay = camera:ScreenPointToRay(100, 100)local extendedRay = Ray.new(unitRay.Origin, unitRay.Direction * length)
이 함수는 현재 작업 공간 카메라에만 적용됩니다. 다른 카메라, 예를 들어 ViewportFrame 을 만든 카메라의 경우, 초기 뷰포트 크기는 (1, 1) 이며 업데이트는 항상 Class.Workspace
매개 변수
Class.Camera 의 깊이, 스터드 단위의 원점 오프셋을 위해 오프셋됩니다.
반환
SetRoll
이 함수는 더 이상 최선 사례가 아니므로 사용하지 마십시오.
이 함수는 Camera의 현재 롤을 라디언트로 설정합니다. 롤은 Camera.CFrame 이후에 적용되고 카메라의 Z축 주위에서 회전을 나타냅니다.
예를 들어, 다음은 Camera 을 뒤집습니다.
workspace.CurrentCamera:SetRoll(math.pi) -- math.pi radians = 180 degrees
SetRoll은 클래스 카메라 프레임을 사용하는 모든 롤에 적용되지 않습니다. SetRoll을 사용하여 적용된 롤은 Camera.CFrame 속성을 통해 반영되지 않지만 Camera.CFrame 속성을 통해 반영됩니다. CFrame를 통해 반환된 2>Class.Camera
이 함수는 기본 카메라 스크립트를 사용하는 경우에만 사용할 수 있습니다. Camera.CameraType 가 스크립트를 사용하는지 여부에 관계없이. 이 함수는 다른 Class.Camera.CameraType 와 함께 사용되면 경고가 출력에 표시됩니다.
이 함수를 사용하여 적용된 모든 롤은 Camera.CameraType에서 클래스 카메라 카메라 타입으로 변경되면 잃게 됩니다.
이 함수를 사용하여 롤 세트를 가져오려면 Camera:GetRoll() 를 사용합니다.
이 함수가 오래되었으므로 대신 Camera에 롤을 적용하는 것이 좋습니다. 예를 들어:
local currentCFrame = workspace.CurrentCamera.CFramelocal rollCFrame = CFrame.Angles(0, 0, roll)workspace.CurrentCamera.CFrame = currentCFrame * rollCFrame
매개 변수
Class.Camera 에 적용할 롤 각도를 라디언트 단위로 나타냅니다.
반환
ViewportPointToRay
이 함수는 장치 안전 뷰포트 좌표에 정의된 2D 위치에서 Ray 단위를 생성합니다. 레이는 세계에서 더 깊이(in studs) 떨어진 위치에 대한 2D 위치의 적용 2D 위치에서 원래됩니다. Vector3 는 세계에서 더 ��
아래에 설명된 대로, (0, 0) 는 Roblox 상단 표시줄의 왼쪽 상단 점에 일치합니다. 이것은 입력 2D 위치가 Enumerate.ScreenInsets|CoreUISafeInsets 인쇄에 대한 영향을 미치지 않지만, 모든
UI 인스턴스는 다른 좌표 시스템을 사용하므로 (GuiObject.AbsolutePosition 는 CoreUISafeInsets 뷰포트 좌표 시스템을 사용하지만 이 함수는 DeviceSafeInsets 뷰포트
또한 이 함수는 Class.Workspace. CurrentCamera 카메라에만 작동합니다. 다른 카메라, 예를 들어 생성한 ViewportFrame 카메라의 경우, 초기 뷰포트 크기가 (1,
이 함수는 ViewportSize 속성과 함께 사용하여 화면 중앙에서 광선을 생성하는 경우 다음과 같은 예시를 제공합니다.
local Workspace = game:GetService("Workspace")local camera = Workspace.CurrentCameralocal viewportPoint = camera.ViewportSize / 2local unitRay = camera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y, 0)
만들어진 Ray는 단위 광선이므로 길이는 단위입니다. 더 긴 광선을 만들려면 팔로잉수행할 수 있습니다.
local Workspace = game:GetService("Workspace")local camera = Workspace.CurrentCameralocal length = 500local unitRay = camera:ScreenPointToRay(100, 100)local extendedRay = Ray.new(unitRay.Origin, unitRay.Direction * length)
매개 변수
장치 안전 영역 좌표에서 Datatype.Ray의 원형을 만드는 뷰포트 점의 위치를 피셍스에서 피셍스로 이동합니다.
Class.Camera 의 깊이, 스터드 단위의 원점 오프셋을 위해 오프셋됩니다.
반환
WorldToScreenPoint
이 함수는 Vector3 의 화면 위치 및 깊이 및 이 점이 화면의 경계 내에 있는지 여부를 반환합니다.
이 함수는 상단 표시 줄에 차지하는 현재 GUI 인서트를 고려하므로, 반환되는 2D 위치가 위치 및 위치 관리자와 동일하게 사용할 수 있습니다. 이를 무시하는 다른 함수는 Camera:WorldToViewportPoint() 을 참조하십시오.
local camera = workspace.CurrentCameralocal worldPoint = Vector3.new(0, 10, 0)local vector, onScreen = camera:WorldToScreenPoint(worldPoint)local screenPoint = Vector2.new(vector.X, vector.Y)local depth = vector.Z
이 함수는 레이캐스팅을 수행하지 않으며, 화면 내에 있는 worldPoint 이 스크린 영역 내에 있는지를 나타내는 부울은 true 이 점이 숨겨진 경우에도 스크린 영역 내에 있는지 여부에 관계없이 BaseParts 또는 2>
매개 변수
Datatype.Vector3 세계 위치.
반환
WorldToViewportPoint
이 함수는 Vector3 의 화면 위치 및 깊이 및 이 점이 화면의 경계 내에 있는지 여부를 반환합니다.
이 함수는 현재 GUI 인서트(예: 상단 표시 줄에 차지하는 공간)를 고려하지 않습니다. 즉, 2D 위치를 뷰포트의 왼쪽 상단 모서리에서 가져오는 경우 반환되는 위치는 ScreenGui.IgnoreGuiInset 를 사용하지 않는 경우에만 적절하지 않습니다.
For an otherwise identical function that accounts for the GUI inset, see Camera:WorldToScreenPoint() .
local camera = workspace.CurrentCameralocal worldPoint = Vector3.new(0, 10, 0)local vector, onScreen = camera:WorldToViewportPoint(worldPoint)local viewportPoint = Vector2.new(vector.X, vector.Y)local depth = vector.Z
이 함수는 레이캐스팅을 수행하지 않으며, 화면 내에 있는 worldPoint 이 스크린 영역 내에 있는지를 나타내는 부울은 true 이 점이 숨겨진 경우에도 스크린 영역 내에 있는지 여부에 관계없이 BaseParts 또는 2>
매개 변수
Datatype.Vector3 세계 위치.
반환
다음을 포함하는 템플릿:
Datatype.Vector3 의 X 및 Y 구성 요소는 뷰포트의 왼쪽 상단 모서리에서 시점 세계 지점의 오프셋을 나타냅니다. 이 구성 요소는 Datatype.Vector3 의 Z 구성 요소는 화면(
worldPoint 이 화면 내에 있는지 여부를 나타내는 부울입니다.
이벤트
InterpolationFinished
이 이벤트는 Camera 가 Camera:Interpolate() 함수를 사용하여 인터폴레이션을 완료했을 때 발생합니다.
이 이벤트는 Camera:Interpolate() 가 다시 호출되는 경우에는 발생하지 않습니다.
대신 Camera 대신 Class.TweenService 를 사용하여 애니메이션을 작성하는 것이 좋습니다.