Partilhar via


SpacePin Classe

Definição

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

public class SpacePin : UnityEngine.MonoBehaviour
type SpacePin = class
    inherit MonoBehaviour
Public Class SpacePin
Inherits MonoBehaviour
Herança
UnityEngine.MonoBehaviour
SpacePin
Derivado

Comentários

Esse componente captura a pose inicial de seu gameObject e, em seguida, uma segunda pose. Em seguida, ele adiciona esse par ao Gerenciador de Alinhamento do WorldLocking. Em seguida, o gerente negocia entre todos esses pinos adicionados, com base na pose da cabeça atual, para gerar um mapeamento quadro a quadro alinhando o Espaço Congelado, ou seja, o Espaço Global do Unity, de modo que os pinos correspondam da melhor forma possível. Outra maneira de formular isso é: dada uma pose arbitrária (a "pose de modelagem") e uma pose alinhada de alguma forma ao mundo real (a "pose bloqueada do mundo"), aplique uma correção à câmera de modo que um objeto virtual com coordenadas da pose de modelagem apareça sobreposto no mundo real na posição e orientação descritas pela pose bloqueada. Para esse componente, a pose bloqueada deve entrar por meio de uma das três APIs a seguir: SetFrozenPose(Pose) com pose de entrada no Espaço Congelado, que inclui fixação. SetSpongyPose(Pose) com pose de entrada no Espaço Esponjoso, que é o espaço do pai da câmera, e é o mesmo espaço em que a câmera se move e as APIs nativas retornam valores em (por exemplo, XR). SetLockedPose(Pose) com pose de entrada em Espaço Bloqueado, que é o espaço estabilizado pela DLL do mecanismo Frozen World, mas excluindo a fixação. Observe que, como o Espaço Congelado é deslocado pelo AlignmentManager, chamar SetFrozenPose(p) com a mesma Pose p duas vezes provavelmente é um erro, já que Pose p se referiria a um local diferente após a primeira chamada.

Construtores

SpacePin()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

Propriedades

AlignmentManager

Acessador para substituir o AlignmentManager do script.

AnchorId

Esse wrapper para o anchorId é porque o anchorId precisa ser armazenado como um ulong, que é a classe base para a enumeração AnchorId. O Unity dá suporte apenas a enumerações baseadas em int, portanto, reclamará da serialização etc. para o AnchorId baseado em ulong.

AnchorName

Forneça um nome de âncora exclusivo. Isso é usado para persistência.

FragmentId

ID do fragmento em que este pino pertence.

LockedPose

Acessador para pose world locked para classes derivadas.

Manager

Acesso somente leitura à dependência do gerenciador de classes derivadas.

ModelingPoseGlobal

Primeiro do par de poses enviadas ao gerenciador de alinhamento para alinhamento.

ModelPositionSource

Onde encontrar a posição do espaço do modelo no destino. A transformação é preferível, mas se as transformações forem feitas, o renderizador ou o colisor poderão ser mais apropriados.

PinActive

Se esse pino de espaço está no espaço de fixação de uso ativo

RestorePoseLocal

Pose para restaurar após a manipulação (se houver).

Métodos

ExtractModelPose()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

ExtractModelPoseFromCollider()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

ExtractModelPoseFromRenderer()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

ExtractModelPoseFromTransform()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

ForceAttachment()

Verifique se há um anexo e se ele está posicionado atualizado.

GetModelPoseFromGlobalPosition(Vector3)

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

OnDestroy()

Ao destruir, cancele o registro do evento carregado.

OnLocationUpdate(Pose)

Retorno de chamada para operações de reajuste. Aplique a transformação de ajuste à pose bloqueada.

PushAlignmentData(IAlignmentManager)

Comunique os dados desse ponto para o gerenciador de alinhamento.

ReleaseAttachment()

Descarte qualquer ponto de anexo criado anteriormente.

Reset()

Voltar para o estado inicial, incluindo a remoção de auto-artefatos do gerenciador de alinhamento.

ResetModelingPose()

Redefina a pose de modelagem para a transformação atual.

RestoreOnLoad()

O retorno de chamada na notificação do banco de dados do gerenciador de alinhamento para marcar se essa predefinição tiver sido persistida e restaurá-la para a operação, se tiver.

SendAlignmentData(IAlignmentManager)

Notifique o gerente de que todas as atualizações necessárias foram enviadas e estão prontas para processamento.

SetFrozenPose(Pose)

Transforme a pose para Espaço Bloqueado e passe.

SetLockedPose(Pose)

Registre a pose bloqueada e envie dados por push para o gerenciador.

SetSpongyPose(Pose)

Transforme a pose para Espaço Bloqueado e passe.

Start()

Auxiliar de componente para fixar o espaço bloqueado do mundo em um único ponto de referência.

Aplica-se a