Camera
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
El objeto Cámara define una vista del mundo 3D. En una experiencia en ejecución, cada cliente tiene su propio objeto Cámara que reside en ese cliente local Workspace , accesible a través de la propiedad 1> Class.Workspace.CurrentCamera1>.
Las propiedades de cámara más importantes son:
Camera.CFrame que representa la posición y orientación de la cámara.
Camera.CameraType que es leído por los scripts de la cámara de la experiencia y determina cómo la cámara debería actualizar cada fotograma.
Camera.CameraSubject lo cual es leído por los scripts de la cámara de la experiencia y determina qué objeto debería seguir la cámara.
Camera.FieldOfView que representa el alcance visible del mundo observable.
Camera.Focus que representa el punto en el que se encuentra la cámara. Es importante que esta propiedad esté establecer, ya que ciertas imágenes serán más detalladas y se actualizarán con más frecuencia dependiendo de la cercanía de la enfoque.
Vea Personalizar la cámara para obtener más información sobre cómo ajustar y personalizar el comportamiento de la cámara.
Resumen
Propiedades
El CFrame de la Camera, que define su posición y orientación en el mundo 3D.
Especifica el Enum.CameraType para que se lea por los scripts de la cámara.
Establece el ángulo de la diagonnal del campo de vistade la cámara.
Establece el ángulo de la vertical del campo de vistade la cámara.
Determina el valor de FOV de la Camera que es invencible debido a los cambios en el tamaño de la ventana.
Establece el área en el espacio 3D que es priorizada por los sistemas gráficos de Roblox.
Alterna si la cámara seguirá automáticamente el movimiento de la cabeza de un jugador usando un dispositivo VR.
Establece el escalado de la perspectiva del usuario del mundo cuando se utiliza VR.
Establece el ángulo del campo de visión de la cámara alrededor del eje de visualización más largo.
Describe el desplazamiento negativo Z de la cámara cerca del avión de clip.
Alterna si aplicar la inclinación y el desplazamiento desde la propiedad Camera.CFrame mientras el jugador está usando un dispositivo VR.
Las dimensiones de la zona segura del dispositivo en un cliente Roblox.
Métodos
Devuelve un arreglo de BaseParts que están ocultando las líneas de visión entre el Camera.CFrame y los puntos de cast.
Devuelve el CFrame real donde se está renderizando el Camera y se tiene en cuenta cualquier rodada aplicada y el impacto de los dispositivos VR.
Devuelve en radianes el giro actual de la cámara, o la rotación alrededor de la Z-axis de la cámara, aplicada a la Camera usando Camera:SetRoll() .
Crea una unidad Ray desde una posición en la pantalla (en píxeles), en una profundidad fijada desde la Camera orientada en la dirección de la cámara. Cuenta con el inserto de GUI.
Establece la rotación actual aplicada alrededor del eje Z de la cámara.
Crea una unidad Ray a partir de una posición en la ventana (en píxeles), en una profundidad especificada por el Camera , orientado en la dirección de la cámara. No cuenta con el inserto Enums.ScreenInsets|CoreUISafeInsets|Enums|Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.Enums.En
Devuelve la ubicación y profundidad de una pantallaworldPoint y worldPoint y si este punto está dentro de los límites de la pantalla. Cuenta el inserto de GUI.
Devuelve la ubicación y profundidad de la pantalla de un Datatype.Vector3worldPoint y si este punto está dentro de los límites de la pantalla. No cuenta el inserto de GUI.
Eventos
Se ha disparado cuando el Camera ha terminado de interpolar usando Camera:Interpolate() .
Propiedades
CFrame
Esta propiedad es la CFrame de la Camera, que define su posición y orientación en el mundo 3D. Nota que algunas transformaciones, como la rotación de la cabeza al usar dispositivos VR, no se reflejan en esta propiedad, por lo que deberías usar Class.Camera:GetRenderCFrame()|GetRenderCFrame
Puede mover la cámara al configurar esta propiedad. Sin embargo, los scripts de cámara predeterminados también lo hacen, por lo que debe:
Establece la cámara Camera.CameraType a Enum.CameraType.Scriptable para que los scripts de cámara predeterminados no actualicen el CFrame de la cámara. Este método es el más simple y recomendado en la mayoría de los casos.
Reemplaza completamente los scripts de cámara predeterminados con alternativas. Esta aproximación solo se recomienda si no necesitas ninguna funcionalidad de cámara predeterminada.
La forma más intuitiva de posicionar y orientar el Camera es usando el constructor CFrame.lookAt(). En el ejemplo siguiente, el Camera está posicionado en 2>Datatype.Vector3.new(0, 10, 0)2> y está orientado para mirar hacia
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)
Aunque la cámara se puede colocar en la manera mostrada anterior, puede que quieras animarla para moverse con suavidad desde un CFrame a otro. Para esto, puedes hacer lo siguiente:
Establezca la posición / orientación de la cámara en cada marco con la RunService:BindToRenderStep() y el método CFrame:Lerp().
Crea y juega un Tween que animan la posición/orientación de la cámara:
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 acepta una variedad de Instances . Los scripts de cámara predeterminados responden de manera diferente a las configuraciones disponibles:
Por defecto, los scripts de la cámara siguen el estado actual del personaje local y Humanoid .
Cuando se establece a un BasePart, los scripts de la cámara siguen su posición, con un desplazamiento vertical en el caso de VehicleSeats .
CameraSubject no se puede configurar como nil . Intenta hacerlo para revertir a su valor anterior.
Para restaurar CameraSubject a su valor predeterminado, establece 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
Las scripts de cámara predeterminadas de Roblox tienen varios comportamientos incrustados. Al configurar esta propiedad, se alterna entre los varios comportamientos de Enum.CameraType . Nota que algunos tipos de cámara requieren un Camera.CameraSubject válido para funcionar correctamente.
Los scripts de cámara predeterminados no moverán o actualizarán la cámara si se establece Tipo de cámara en Enum.CameraType.Scriptable . Para obtener más información sobre la posición y orientación de la cámara manualmente, consulte Camera.CFrame .
Para todas las configuraciones de Tipo de cámara excepto Enum.CameraType.Scriptable, la propiedad 1> Class.Camera.CameraSubject|CameraSubject1> representa el objeto cuya posición se establece la posición de la cámara 4> Class.Camera.Focus4>.
DiagonalFieldOfView
Establece la cantidad de grados en la dirección de la diapositiva (desde una esquina de la vista a su esquina opuesta) que la cámara puede ver. Vea FieldOfView para una explicación más general de la perspectiva de campo.
Nota que DiagonalFieldOfView representa el campo de visión que es visible por la renderización de Camera en el área de pantalla completa que puede estar oculta por agujeros o cortes de pantalla en algunos dispositivos. Vea Class. Camera.ViewportSize|ViewportSize para obtener más información.
FieldOfView
La propiedad FieldOfView establece la cantidad de grados en la dirección vertical en la que la cámara puede ver. Esta propiedad está fijada entre 1 y 120 grados y se pregunta por defecto en 70. Los campos de vista muy bajos o muy altos no se recomiendan como pueden desorientar a los jugadores.
Tenga en cuenta que la escala de uniformes está obligada, lo que significa que el campo de visión vertical y horizontal siempre está relacionado por el aspecto de la escala de la pantalla.
Los usos recomendados para FieldOfView (FOV) incluyen:
- Reducir el FOV para dar la sensación de magnificación, por ejemplo, cuando se usan binoculares.
- Aumentar el FOV cuando el jugador está "corriendo" para dar la impresión de una falta de control.
Nota que FieldOfView representa el campo de vista que es visible por el renderizado de Camera en el área de pantalla completa que puede estar oculta por agujas o cortes de pantalla en algunos dispositivos. Consulte Class.Camera. ViewportSize|ViewportSize para obtener más información.
FieldOfViewMode
El campo de visión de la cámara (FOV) debe actualizarse para reflejar los cambios ViewportSize. El valor de FieldOfViewMode determina qué valor de FOV se mantendrá constante.
Por ejemplo, cuando esta propiedad se establece en Enum.FieldOfViewMode.Vertical, el FOV horizontal se actualiza cuando el área de visualización se reubica, pero el FOV vertical se mantiene constante. Si esta propiedad se establece en Enum.FieldOfViewMode.Diagonal, tanto el FOV horizontal como el vertical se pueden cambiar para mantener el FOV vertical constante.
Focus
Ciertas operaciones gráficas que realiza el motor, como actualizar iluminación, puede tomar tiempo o esfuerzo computacional para completar. La propiedad de enfoque de la cámara, Focus , le dice al motor qué área en el espacio 3D priorizar cuando realiza tales operaciones. Por ejemplo, la iluminación dinámica de objetos como PointLights puede no renderizar a distancias lejos del enfoque.
Los scripts de cámara predeterminados de Roblox siempre establecen enfocar</
Enfoque no tiene ningún efecto en la posición o orientación de la cámara; véase Camera.CFrame para esto.
HeadLocked
Alterna si la cámara seguirá automáticamente el movimiento de la cabeza de un jugador usando un dispositivo VR. Cuando true (por defecto), el motor combina Camera.CFrame con el Enum.UserCFrame de la cabeza del usuario para renderizar la vista del jugador con el seguimiento de la cabeza
local UserInputService = game:GetService("UserInputService")local camera = workspace.CurrentCameralocal headCFrame = UserInputService:GetUserCFrame(Enum.UserCFrame.Head)headCFrame = headCFrame.Rotation + headCFrame.Position * camera.HeadScale-- Esto será equivalente a Camera:GetRenderCFrame()local renderCFrame = camera.CFrame * headCFrame
Se recomienda no desactivar esta propiedad por las siguientes razones:
- Los jugadores pueden experimentar dolor de movimiento si no se agrega una solución de seguimiento de cabeza válida.
- El motor de Roblox realiza optimizaciones de rendimiento cuando CabezaBloqueada es cierto.
Ver también
- VRService:GetUserCFrame() que se puede usar para obtener el CFrame de la cabeza.
- VRService:RecenterUserHeadCFrame() que se utiliza para recentar la cabeza en la posición y orientación actual del dispositivo VR.
- La función Camera:GetRenderCFrame() que devuelve el Camera.CFrame combinado con el CFrame de la cabeza del usuario.
HeadScale
HeadScale es la escala de la perspectiva del usuario del mundo cuando se utiliza VR.
El tamaño de 1 stud en VR es 0.3 meters / HeadScale , lo que significa que valores más grandes de HeadScale valen para el mundo con perspectiva de usuario al usar dispositivos VR. Por ejemplo, una parte que mide 1 stud alto parece ser 0.6 metros alto para un jugador con un HeadScale de 0.5.
Esta propiedad se controla automáticamente por <a href="https://www.class.vrservice.automaticscalings.com/"> Class.VRService.AutomaticScaling</a> para alinear la perspectiva del jugador con el tamaño de su avatar. Si tiene la intención de controlar <b>Class.VRService.AutomaticScaling</b> usted mismo o usar personajes personalizados, alterna <i>Class.VRService.AutomaticScaling</i> a <i>Class.VRService
Esta propiedad no debe confundirse con Humanoid.HeadScale que es un padre de NumberValue a un Humanoid para controlar su escalado.
MaxAxisFieldOfView
La propiedad MaxAxisFieldOfView establece la cantidad de grados en el eje de máxima distorsión que la cámara puede vista.
Cuando el eje más largo es el eje vertical, esta propiedad se comportará similar a la propiedad FieldOfView. Esto es generalmente el caso cuando un dispositivo está en una orientación de retrato. En una orientación de paisaje, el eje más largo será el eje horizontal; en este caso, la propiedad describe el campo de vista horizontal de la Camera.
NearPlaneZ
La propiedad CercaPlanoZ describe la distancia de la cámara al límite de aparición, en studs. La cámara al límite de aparición es un plano geométrico que se encuentra frente al límite de aparición de la cámara, Camera.CFrame . Todo lo que está entre este plano y la cámara no
VRTiltAndRollEnabled
Esta propiedad alterna si aplicar la inclinación y el giro de la propiedad Camera.CFrame mientras el jugador está usando un dispositivo VR.
Para evitar el mal de movimiento, el horizonte debe seguir siendo nivel. Tilt y hacer girar la vista del jugador mientras se usa un dispositivo VR puede causar una desconexión entre el espacio físico del jugador y el espacio virtual que están viendo. Cambiar la dirección aparente hacia abajo puede hacer que los jugadores pierdan el equilibrio o experimenten vértigo.
Por estas razones, generalmente se recomienda dejar esta propiedad desactivada, a menos que tenga ampliamente probado su experiencia para estos efectos. Incluso con la inclinación y la rotación habilitadas, puede que desee asegurarse de que el jugador siempre tenga un marco de referencia estable, como el interior de un vehículo o un suelo que ayude al jugador a encontrarse en su espacio físico.
ViewportSize
ViewportSize 返回当前屏幕上的设备安全区的 dimensiones。此区域是一个长方体,包括 Roblox top bar 区域,但不包括任何设备 notches 或屏幕切割。 Class.Camera.ViewportSize|ViewportSize 的单位是 Roblox UI 偏移单位,可能与 native 显示像素不同。
Como se ha notado anteriormente, ViewportSize no es igual a la capacidad de área de pantalla completa en las pantallas con cortes o ranuras. Para obtener la capac
Finalmente, tenga en cuenta que ViewportSize no es el tamaño de la ventana de visualización que usa la cámara para renderizar (la cámara renderiza en la zona de la pantalla completa). Además, las propiedades Camera.FieldOfView y Camera.DiagonalFieldOfView se bas
Actualizaciones de cámaras
Solo la Camera actualmente referida por Class.Workspace. CurrentCamera tiene su ViewportSize actualizado durante el marco de tiempo 2>Class.RunService.PreRender|PreRender2> . La 5>Class
Métodos
GetPartsObscuringTarget
Este método返回一个阵列 de BaseParts que están ocultando las líneas de visión entre el Camera.CFrame y Vector3 posiciones en el 1> castPoints1> arranque. Cualquier 4> Class
El parámetro castPoints se proporciona como un conjunto de posiciones Vector3 . Nota que el conjunto de posiciones BaseParts devueltos está en un orden aleatorio, y no se proporciona datos de raycast adicionales. Si necesitas datos como la posición de golpe, el material de toque o la superficie normal, deberías
local camera = workspace.CurrentCameralocal castPoints = {Vector3.new(0, 10, 0),Vector3.new(0, 15, 0)}local ignoreList = {}local partsObscuringTarget = camera:GetPartsObscuringTarget(castPoints, ignoreList)
Si Terrain oculta un punto de cast, BaseParts oculta el punto de cast entre el punto de cast de Terrain y el punto de cast no se devolverá.
Parámetros
Un arreglo de Instances que deben ignorarse, junto con sus descendientes.
Devuelve
Un arreglo de BaseParts que oculta las líneas de visión entre el marco de la cámara y el Camera.CFrame .
Muestras de código
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
Esta función devuelve el CFrame actual de la Camera como se renderiza, incluyendo el impacto de VR (VR head transformations no se aplican a la propiedad Camera.CFrame , por lo que es mejor usar 2> Class.Camera:GetRenderC
Por ejemplo, al usar VR, el Camera se renderiza en realidad en el siguiente 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
El render de la cámara CFrame solo se cambiará para tener en cuenta la cabeza cuando la propiedad Camera.HeadLocked esté verdadera.
Devuelve
GetRoll
Esta función devuelve, en radianes, el giro actual aplicado a la Camera usando Camera:SetRoll() . El giro se define como la rotación alrededor de la Z-axis de la cámara.
Esta función solo devuelve el rollo aplicado usando la función Camera:SetRoll(). El rollo manualmente aplicado a la cámara de Camera.CFrame no se cuenta. Para obtener el rollo actual de la Camera, incluido el rollo manualmente aplicado, puede usar el siguiente fragmento:
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
Devuelve
La actualización de la aplicación de Camera:SetRoll() , en radianes.
Muestras de código
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
Esta función crea una unidad Ray desde una posición 2D en la pantalla (definida en píxeles), que representa el GUI enset. La Ray original proviene del equivalente de la Vector3 del mundo en la profundidad 1> Class.Camera1> .
Como esta función reconoce el GUI inserto, el desplazamiento aplicado a los elementos GUI (como desde la barra superior) se tiene en cuenta. Esto significa que la posición de la pantalla especificada comenzará en la esquina superior izquierda del desplazamiento debajo de la barra superior. Para una función idéntica que no tiene en cuenta el desplazamiento, usa Camera:ViewportPointToRay() .
Como el Ray creado es un rayo de unidad, solo mide un estudio. Para crear un rayo más largo, puede hacer lo siguiendo:
local camera = workspace.CurrentCameralocal length = 500local unitRay = camera:ScreenPointToRay(100, 100)local extendedRay = Ray.new(unitRay.Origin, unitRay.Direction * length)
Esta función solo funciona para la cámara actual del espacio de trabajo. Las otras cámaras, como las que crea para un ViewportFrame , tienen un tamaño de inicio de la ventana de (1, 1) y solo se actualizan después de que las configure para Workspace.CurrentCamera . El desajuste en el tamaño de la
Parámetros
La posición en el eje X, en píxeles, del punto de la pantalla en el que se originar el Ray . Esta posición representa el espacio de inserción de la GUI.
La posición en el eje Y, en píxeles, del punto de la pantalla en el que se originar el Ray . Esta posición representa el espacio de inserción de la GUI.
Devuelve
SetRoll
Esta función está obsoleta y ya no se considera mejor práctica.
Esta función establece la actual capa, en radianes, de la Camera . La capa se aplica después de la Camera.CFrame y representa la rotación alrededor de la Z-axis de la cámara.
Por ejemplo, lo siguiente invertiría el Camera :
workspace.CurrentCamera:SetRoll(math.pi) -- math.pi radians = 180 degrees
SetRoll no tiene ningún efecto en ningún giro aplicado con la propiedad Camera.CFrame. El giro aplicado con la propiedad SetRoll no se refleja en la propiedad Camera.CFrame sino que se refleja en la propiedad CFrame que se devuelve por 1> Class.Camera:GetRenderCFrame()1> .
Esta función solo se puede usar cuando el Camera.CameraType está configurado como 'Scriptable', independientemente de si los scripts de cámara predeterminados están siendo usados. Si se usa con cualquier otro Camera.CameraType, se mostrará un aviso en la Salida.
Cualquier rodillo aplicado con esta función se perderá cuando el Camera.CameraType se cambie de 'Scriptable' .
Para obtener el conjunto de rodillos usando esta función usa Camera:GetRoll() .
Dado que esta función está obsoleta, se recomienda aplicar el rol a la Camera usando la propiedad Camera.CFrame. Por ejemplo:
local currentCFrame = workspace.CurrentCamera.CFramelocal rollCFrame = CFrame.Angles(0, 0, roll)workspace.CurrentCamera.CFrame = currentCFrame * rollCFrame
Parámetros
Devuelve
ViewportPointToRay
Esta función crea una unidad Ray a partir de una posición 2D en la pantalla segura del dispositivo, definida en píxeles. El rayo se origina desde el Vector3 equivalente de la posición 2D en el mundo a la distancia de Camera .
Como se muestra a continuación, (0, 0) coincide con el punto superior izquierdo de la barra superior de Roblox. Esto significa que la posición de entrada 2D no hace cuenta de la inserción, pero hace CoreUISafeInsets de la inserción, pero no hace 1>cuenta1> de la inserción.
Nota que las instancias de UI usan un sistema de coordenadas diferente ( GuiObject.AbsolutePosition usa el sistema de coordenadas de vista CoreUISafeInsets mientras que esta función usa el sistema de coordenadas de vista DeviceSafeInsets . Si desea especificar la posición en los núcleos de UI
Tenga en cuenta también que esta función solo funciona para la cámara Class.Workspace. CurrentCamera. Otras cámaras, como las que crea para una cámara ViewportFrame, tienen un tamaño de vista inicial de (1, 1) y solo se actualizan después de
Esta función se puede utilizar en conjunción con la propiedad ViewportSize para crear un rayo desde el centro de la pantalla, por ejemplo:
local Workspace = game:GetService("Workspace")local camera = Workspace.CurrentCameralocal viewportPoint = camera.ViewportSize / 2local unitRay = camera:ViewportPointToRay(viewportPoint.X, viewportPoint.Y, 0)
Como el Ray creado es un rayo de unidad, solo mide un estudio. Para crear un rayo más largo, puede hacer lo siguiendo:
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)
Parámetros
La posición en el eje X de la pantalla, en píxeles, del punto de vista en el que se originan los Ray , en coordenadas de seguridad del dispositivo.
La posición en el eje Y , en píxeles, del punto de vista en el que se originan los Ray, en coordenadas seguras del dispositivo.
Devuelve
Una unidad Ray , que se originó desde la posición de mundo de la vista dada en la posición de vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de la vista dada de
WorldToScreenPoint
Esta función devuelve la ubicación y la profundidad de la pantalla de un Datatype.Vector3``worldPoint y si este punto está dentro de los límites de la pantalla.
Esta función tiene en cuenta la inserción actual de la GUI, como el espacio ocupado por la barra superior, lo que significa que la posición 2D devuelta está en el mismo término que las posiciones de la GUI y se puede usar para colocar elementos de la GUI. Para una función idéntica que ignora la inserción de la GUI, see 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
Nota: esta función no realiza ningún raycasting y el valor deBoolean que indica si worldPoint está dentro de los límites de la pantalla será true independientemente de si el punto está oculto por BaseParts o 1> Class.Terrain1> .
Parámetros
Devuelve
Un tutorial que contiene, en orden:
Un valor deBooleano que indica si el worldPoint está dentro de los límites de la pantalla.
WorldToViewportPoint
Esta función devuelve la ubicación y la profundidad de la pantalla de un Datatype.Vector3``worldPoint y si este punto está dentro de los límites de la pantalla.
Esta función no tiene en cuenta el inserto de GUI actual, como el espacio ocupado por la barra superior, lo que significa que la posición 2D devuelta se toma de la esquina superior izquierda de la ventanilla. A menos que estés usando ScreenGui.IgnoreGuiInset, esta posición no es adecuada para colocar elementos de GUI.
Para una función idéntica que cubre el punto de inserción de la GUI, 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
Nota: esta función no realiza ningún raycasting y el valor deBoolean que indica si worldPoint está dentro de los límites de la pantalla será true independientemente de si el punto está oculto por BaseParts o 1> Class.Terrain1> .
Parámetros
Devuelve
Un tutorial que contiene, en orden:
Un Vector3 cuyos componentes de X y Y representan el desplazamiento del 1> worldPoint1> desde la esquina superior izquierda de la ventana, en píxeles. El componente de 4> Datatype.Vector34> 7> Z7> representa la
Un valor deBooleano que indica si el worldPoint está dentro de los límites de la pantalla.
Eventos
InterpolationFinished
Este evento se activa cuando el Camera ha terminado de interpolar usando la función Camera:Interpolate().
Este evento no se disparará si se interrumpe un tween debido a que se llama de nuevo a Camera:Interpolate() .
Se recomienda usar TweenService para animar el Camera en su lugar, ya que es más confiable y ofrece más opciones para aliviar los estilos.