A instância ControllerManager gere simulação de controle de movimento para seu atribuído RootPart. Junto com ControllerPartSensors, ele pode ser usado para construir um Controlede personagem baseado em física.
Configuração do Núcleo
ControllerManager requer um BasePart para ser usado como sua raiz. Forças de movimento e sensores de peça estarão nesta parte.
Agrupe a peça como uma instância Model para organização, juntamente com os outros componentes.
Adicione uma instância de ControllerManager ao modelo. Se ControladorManager não aparecer inicialmente no menu de inserção de objetos, Desmarcar “Mostrar apenas objetos recomendados” nas configurações de inserção do menu.
Configuração de Sensor
Um ControllerPartSensor detecta peças com o mesmo código que o Humanoid usa para detectar pisos e escadas.
Insira um ControllerPartSensor como filho de RootPart e renomeie-o para GroundSensor para identificar facilmente seu propósito. Então, na janela 1> Propriedades1>, configure seu propriedade 4> Class.Controller
Insira outro ControllerPartSensor como filho de RootPart e renomeie-o para ClimbSensor . Em seguida, na janela 1> Propriedades1>, configure sua propriedade 4> Class.ControllerPartSensor.SearchDistance|SearchDistance4> para
Configuração do Controlador
Instâncias de controle, como GroundController e ClimbController, dizem à parte gerenciada como interagir com o mundo, trabalhando ao lado dos sensores que você configurou em Configuração de sensores.
Insira tanto um GroundController quanto um ClimbController como filhos do ControllerManager.
Selecione a nova instância GroundController e, na janela Propriedades, configure sua propriedade GroundOffset para um valor que a peça gerenciada
Vinculando Referências
Para concluir o setup do núcleo, você'll precisar linkar várias propriedades da instância ControllerManager a objetos dentro do principal Model .
Selecione a instância ControllerManager.
Na janela Propriedades, clique em cada uma das propriedades a seguir e, em seguida, na janela Explorer, clique na instância respectiva para completar o víncular / conectar.
- Link the ActiveController property to the GroundController instância.
- Link the RootPart property to the part you named RootPart .
- Link the ClimbSensor property to the ClimbSensor instância.
- Link the GroundSensor property to the GroundSensor instância.
Testando
Com sensores e controleadores no local, e com referências ligadas, você pode testar o controlador no Studio.
Inicie um teste de jogo usando o modo Correr ( F8 ) pois você não precisa inserir seu personagem de avatar neste cenário.
RootPart deve levitar acima do solo na GroundController.GroundOffset valor que você definiu em Adicionando Controleurs. Ele também deve girar para alinhar com o veículo 0> Class.ControllerManager.FacingDirection 0>.
Experimento com diferentes direções de movimento e direções de rosto alterando os vértices MovingDirection e Class
Sensores Personalizados
As opções do ControllerPartSensor.SensorMode de Floor e Ladder são executadas com o código de sensor exato, permitindo que você use-os para a compatibilidade com versões anteriores. No entanto, você também pode personalizar como e quando as peças caminháveis e escaláveis são detectadas, final
Alternar o ControllerPartSensor.UpdateType de OnRead para Manual .
- OnRead gatilha as propriedades de saída para atualizar correspondendo ao seu SensorMode sempre que você as lê. Essencialmente, coloca o sensore em um modo "somente leitura" onde qualquer coisa que você escreva nessas propriedades se torna sobrescrito por seu comportamento de sensing interno.
- Manual desliga o comportamento de sensing interno. As propriedades de saída são gratuitas para você escrever como você gosta e o SensorMode não faz nada.
Crie um script que execute sua própria lógica de sensing e escreva os resultados em suas propriedades de saída de sensores. Normalmente, você usará uma consulta espacial, como WorldRoot:Raycast() ou WorldRoot:Blockcast(), que retorna um RaycastResult. Seu script então pode levar as propriedades do resultado e configurá-las nos equivalentes de sensores
Nota que você precisará gerenciar com frequência quantas vezes suas consultas são executadas e atualizam sua instância de sensores.
O ControllerManager continuará a usar os sensores que foram atribuídos, levará os dados que você passa para ele.