Coisas que eu quero fazer
Criarei um comportamento semelhante ao de um jogo de tiro em primeira pessoa (FPS) no Unity, controlado por um mouse.
Vou listar alguns pontos a serem considerados em relação ao processo de criação.
Este documento ainda está em construção, portanto pode conter erros. Utilize-o apenas como referência.
especificação:
Movimento do mouse para a esquerda/direita → Movimento da visão da câmera
Clique com o botão esquerdo → Avançar
Ele para quando bate em uma parede.
Ambiente
Unity: 6000.0.23f1.7976.6000.0/Staging4246
implementação
Configuração do jogador e da câmera
Criação de Jogador
Crie um objeto 3D que se tornará o Jogador a partir do sinal de + na Hierarquia.
Como não é visível em jogos de tiro em primeira pessoa, qualquer formato serviria, mas escolhi um cubo. Considerando futuros problemas de detecção de colisão, o cubo parece a opção mais segura.
Movimento de câmera
Arraste e solte a MainCamera da visualização Hierarchy para o Player para torná-la filha do Player.
A estrutura hierárquica é a seguinte:

Ao tornar MainCamera filha de Player, a câmera seguirá automaticamente o jogador quando ele se mover.
Como mencionado anteriormente, a câmera segue o jogador, então mova a câmera para as mesmas coordenadas X e Z do jogador. Posicione a coordenada Y ligeiramente acima do jogador.
O cubo na parte inferior representa o jogador, e a seta aponta para a câmera.

Adicione um script ao player
Fiz o seguinte para o Jogador:
using UnityEngine;
public class player : MonoBehaviour
{
private float speed = 5.0f;
void Update()
{
float mx = Input.GetAxis("Mouse X");////mouse movement
if (Mathf.Abs(mx) > 0.001f)
{
transform.RotateAround(transform.position, Vector3.up, mx); ////update POV
}
if (Input.GetMouseButton(0))//////////repeat while press
{
float zMovement = speed * Time.deltaTime;
transform.Translate(0, 0, zMovement);/////forward
}
}
}Adição de cálculos de física
Configurações do jogador
Adicione um componente RigidBody a partir do AddComponent do Player e altere as configurações da seguinte forma.
Marcar a opção Y em Congelar Posição impedirá o comportamento de ricochete que ocorre quando um objeto colide com outro. (Isso não é obrigatório.)
Marcar as opções X, Y e Z em ‘Congelar Rotação’ interromperá o comportamento de rotação ao colidir com um objeto. Se você não marcar essa opção, a câmera também girará ao colidir, portanto, é melhor marcá-la.

Configurações de parede e obstáculo
Aqui, usaremos o objeto criado no Blender, conforme descrito no artigo a seguir, para representar uma parede.
No entanto, para simplificar os cálculos de física, desmarquei a opção Gerar Colisor .
Selecione o objeto adicionado na visualização Hierarquia e adicione um Box Collider.
Clique em EditarCollier.

Uma moldura verde aparecerá na visualização da cena, como mostrado abaixo; ajuste-a para que se ajuste ao objeto.
(Observe que, embora uma borda azul apareça ao selecionar um objeto, trata-se de uma área diferente.)

Em seguida, adicione um Rigidbody e marque todas as caixas de seleção ‘Congelar Posição’ e ‘Congelar Rotação’, conforme mostrado abaixo.
Dessa forma, mesmo que você colida com ela, a parede não se moverá.

Sites que utilizei como referência



コメント