Sistema físico (quatro) de aprendizado de unidade

Corpo rígido

O corpo rígido é o principal componente do comportamento físico do GameObject. Uma vez associado ao corpo rígido, o objeto será imediatamente afetado pela gravidade. Se um ou mais coletores estiverem ausentes, o GameObject se moverá devido a uma colisão.
Como o componente Rigidbody assume o movimento do GameObject associado a ele, você não deve mais mover o objeto alterando a propriedade Transform do script. Portanto, você deve usar a mecânica para dirigir o GameObject e deixar o mecanismo de física calcular o resultado. (Aprenda bem a física.)
Existem algumas situações abaixo: Você também pode precisar de um GameObject com um corpo rígido que não será controlado pelo mecanismo de física. Por exemplo, você pode precisar controlar seu personagem diretamente do script, mas ele ainda pode ser detectado por gatilhos (descritos mais adiante). Esse movimento não físico gerado pelo script é chamado de movimento cinemático. O componente Rigidbody possui um atributo cinemático, que o remove do controle do mecanismo de física e se move pelo script. É possível alterar o Is Kinematic do script para permitir a física de abrir / fechar objetos, mas haverá alguma sobrecarga operacional (use o mínimo possível).

Modo de suspensão

Quando o corpo rígido se move mais devagar do que a velocidade mínima de linha / rotação predefinida, o mecanismo de física assume que parou. Depois disso, o GameObject não se moverá mais até ser atingido por uma colisão ou força e entra no modo "inativo". Essa otimização significa que o Rigidbody não leva mais tempo para atualizar o processador até que ele seja "despertado" novamente (ou seja, esteja em movimento novamente).
Na maioria dos casos, o componente Rigidbody vai dormir ou acorda obviamente. No entanto, se o Static Collider (um GameObject sem um corpo rígido) modificar a posição da Transformação para se aproximar ou principiar um GameObject, o GameObject poderá falhar ao acordar. Isso pode fazer com que o Rigidbody GameObject fique suspenso no ar depois que o piso for removido abaixo dele. Nesse caso, GameObject usa a função WakeUp para ativar explicitamente o GameObject.

Colisores

O componente Collider define a forma do GameObject para colisão física. O colisor é invisível e não precisa ter a mesma forma que a grade GameObject. Na jogabilidade, a forma aproximada da grade é suficiente.
Os coletores mais simples são os tipos iniciais de colisor. Em 3D, essas categorias são Box Collider, Sphere Collider e Capsule Collider. Em 2D, você pode usar o Box Collider 2D e o Circle Collider 2D.

Coletores compostos

Os coletores compostos estimam a forma do GameObject e consomem apenas uma pequena quantidade de sobrecarga do processador. Você também pode adicionar outros elementos flexíveis para os GameObjects filhos. Por exemplo, você pode girar a caixa em relação ao eixo de coordenadas do GameObject pai. Ao criar um colisor composto, você deve usar apenas um componente Rigidbody, colocado no GameObject de origem na hierarquia.
Os coletores iniciais não podem ser usados ​​para transformação de cisalhamento.

Colliders

Em alguns casos, o número par de colisores compostos não é preciso o suficiente. Em 3D, você pode usar colisores de grade para combinar com precisão a forma da grade do GameObject.
Esse tipo de colisor consome mais recursos do processador que o tipo original e utiliza o mínimo possível. Obviamente, o colisor de grade não colidirá com outro colisor de grade (ou seja, nada acontecerá quando tocarem). Em alguns casos, você pode ignorar o recurso marcando o colisor de grade como Convexo no Inspetor. Isso produzirá uma forma de colisor de "casco convexo". (Essa forma é muito semelhante à malha inicial, mas não haverá rebaixo) (?) A vantagem disso é que um colisor de malha convexo pode colidir com outros coletores de malha; portanto, quando você tem um personagem em movimento, Você pode usar esse recurso.

Coletores estáticos

Você pode usar coletores estáticos para adicionar coletores ao GameObjects sem um componente Rigidbody para construir pisos, paredes e elementos que não precisam se mover na cena. Você não pode reposicionar os colisores estáticos alterando a posição da transformação, pois isso afetará seriamente o desempenho do mecanismo de física. Colliders no GameObjects com Rigidbody são chamados de colliders dinâmicos. Os coletores estáticos podem interagir com coletores dinâmicos, mas, como não possuem um corpo rígido, não podem se mover devido a colisões.

Materiais físicos

Quando os coletores interagem, suas superfícies precisam simular as propriedades dos materiais que eles representam. Por exemplo, uma camada de gelo é escorregadia e uma bola de borracha esfrega e é elástica. Embora a forma dos coletores não se deforme durante uma colisão, seu atrito e força elástica podem ser configurados por materiais físicos.

Gatilhos

Quando ocorre uma colisão, o sistema de scripts pode detectá-lo e usar a função OnCollisionEnter para iniciar a ação. No entanto, você também pode usar o mecanismo de física para simplesmente detectar que um colisor entra em outras áreas quando não há colisão. Um colisor configurado como Trigger (usando o atributo Is Trigger) é diferente de objetos sólidos e pode simplesmente permitir a passagem de outros colisores. Depois que um colisor entra em sua área, o gatilho chama a função OnTriggerEnter no script deste objeto.

Continua....

Acho que você gosta

Origin www.cnblogs.com/qing2019/p/12729518.html
Recomendado
Clasificación