[100 pequenos pontos de conhecimento do Unity pisando no poço] | O Unity usa Quaternion.AngleAxis para aleatoriamente uma direção

Unity usa rotação aleatória em uma direção
insira a descrição da imagem aqui

Unidade pequena ciência

Regras antigas, primeiro introduza o conhecimento científico popular da Unity :

  • Unity é uma plataforma de criação e operação de conteúdo interativo 3D em tempo real.
  • Todos os criadores, incluindo desenvolvimento de jogos , arte , arquitetura , design automotivo , cinema e televisão , transformam suas ideias em realidade com o Unity .
  • A plataforma Unity fornece um conjunto completo de soluções de software para criação, operação e monetização de qualquer conteúdo 2D e 3D interativo em tempo real, suportando plataformas como telefones celulares , tablets , PCs , consoles de jogos , realidade aumentada e dispositivos de realidade virtual.
  • Unity também pode ser entendido simplesmente como um motor de jogo , que pode ser usado para fazer jogos profissionalmente !

Unity pisa no poço para aprender pequenos pontos de conhecimento

Unity usa Quaternion.AngleAxis para randomizar uma direção

No processo de fazer um projeto, às vezes você encontrará a função de obter uma direção aleatoriamente.Aqui está uma breve introdução ao método Quaternion.AngleAxis .

public static Quaternion AngleAxis(float angle, Vector3 axis);

Crie um eixo de rotação em torno dos graus do ângulo de rotação.

Podemos usar o método Random.Range() para atribuir parâmetros aleatoriamente para obter um quatérnion aleatório e, em seguida, podemos alterar a direção de acordo com esse número, como você pode ver rapidamente no exemplo simples a seguir.

Cada vez que você clica com o botão esquerdo do mouse, um marcador em uma direção aleatória pode ser gerado. O efeito é o seguinte:
insira a descrição da imagem aqui

O código completo é o seguinte:

using UnityEngine;

public class RangeDemo : MonoBehaviour
{
    
    
    public GameObject bulletPrefab;

    [Header("速度")]
    public float speed = 5f;


    void Update()
    {
    
    
        if (Input.GetMouseButtonDown(0))
        {
    
    
            //随机一个方向
            Quaternion dir = Quaternion.AngleAxis(Random.Range(0, 360), Vector3.up);

            //生成子弹
            GameObject go = Instantiate(bulletPrefab,transform.position, dir);

            //三秒后销毁物体
            Destroy(go,3);
        }
    }
}

Como mover balas

   void Update()
    {
    
    
        transform.position += transform.forward;
    }

Altere o intervalo de parâmetros em AngleAxis para controlar o intervalo de direção aleatória, por exemplo, altere-o para 180 da seguinte forma:

insira a descrição da imagem aqui

Por favor, adicione a descrição da imagem

   void Update()
    {
    
    
        if (Input.GetMouseButtonDown(0))
        {
    
    
            //随机一个方向
            Quaternion dir = Quaternion.AngleAxis(Random.Range(0, 180), Vector3.up);

            //生成子弹
            GameObject go = Instantiate(bulletPrefab,transform.position, dir);

            //三秒后销毁物体
            Destroy(go,3);
        }
    }

insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/zhangay1998/article/details/124339402
Recomendado
Clasificación