Classes principais comumente usadas do Unity

insira a descrição da imagem aqui
1. Transforme a transformação
a. Posicione o movimento

//表示在世界坐标上向x正方向(右)位移10米(x,y,z)
transform.position = new Vector3(10, 0, 0);
//表示在本地坐标向右位移10米
transform.localPosition = new Vector3(10, 0, 0);
//Space.World:世界坐标系 Space.Self:自身坐标系
//在Update中使用Translate可以一直移动
transform.Translate(new Vector3(10,0,0),Space.World);
transform.Translate(new Vector3(10,0,0),Space.Self);
transform.Translate(new Vector3(10,0,0));//默认是世界坐标
//若使用position一直移动
transform.position += new Vector3(10, 0, 0);

Coordenadas mundiais: toma a origem da cena como origem
Coordenadas locais: assume a posição do objeto pai como origem
transform: É uma classe usada para descrever a posição, tamanho, rotação e outras informações do objeto.
Translate: É um objeto da classe transform, anexado a cada objeto; um método da classe transform, usado para alterar a posição
b e o ângulo de rotação do objeto

//四元数:Quaternion  欧拉角:Euler
//表示在世界坐标绕y轴旋转45°
transform.rotation = Quaternion.Euler(0, 45, 0);
//表示在本地坐标绕y轴旋转45°
transform.localRotation = Quaternion.Euler(0, 45, 0);
//表示一个游戏对象绕另一个游戏对象旋转(位置,方向,速度)
transform.RotateAround(sphere.position,Vector3.up,1);

transform.Rotate(new Vector3(0,45,0),Space.World);
transform.Rotate(new Vector3(0,45,0));//默认Space.World
transform.Rotate(new Vector(0,45,0),Space.Self);

A diferença entre transform.rotation e transform.Rotate:
O método Rotate() é: quantos graus girar. Acumular na base original, ou seja, quantos ângulos são girados.O
atributo de rotação é: girar para um determinado ângulo, ou seja, é executado a cada quadro em atualização. Mas o ângulo de cada rotação é de 45, então é girado para 45 graus.
Por exemplo, se você quiser apenas girar até quanto, use a rotação;
se quiser girar o tempo todo, use Rotaterotation para alterar diretamente o valor para obter o efeito de rotação.
c. Autodimensionamento

//以x轴方向放大2倍
transform.localScale = new Vector3(2,1,1);

Falando nisso, vamos pensar em um tópico: como um cubo pode ser melhor deslocado, girado e dimensionado em um determinado ponto próprio?
(Veja a parte inferior do texto para meus pensamentos)

2. Vector3 (vetor)
vetor: uma quantidade com tamanho e direção
a, back: para trás
Vector3.back;
new Vector3(0,0,-1)
b, down: down
Vector3.down;
new Vector3(0 ,-1 ,0);
c, para a frente: para a frente
novo Vector3(0,0,1);
d, esquerda: para a esquerda
novo Vector3(-1,0,0);
e, para a direita: para a direita
novo Vector3(1 ,0,0);
f, um: adicione 1 a X, Y, Z cada
novo Vetor3(1,1,1);
g, para cima: para cima
novo Vetor3(0,1,0);
h, zero: (0, 0,0)
novo Vetor3(0,0,0);

3.
A diferença entre GameObject GameObject e gameObject
GameObject é a classe base da classe de objeto do jogo (todos os objetos do jogo)
gameObject é o objeto montado pelo script (o objeto do jogo onde o componente do script está localizado)

//1、创建空对象(分别取名father和son)
GameObject father = new GameObject("father");
GameObjec son = new GameObject("son");
//2、把son放在father下面
//方法一:
son.transform.parent = father.transform;
//方法二:
son.transform.setParent(father.transform);
//3、查找子对象
GameObject qiu = transform.GetChild(0).gameObject;
//4、查找父对象
GameObject cube = transform.parent.gameObject;

4. Stop
Time.time: Indica o tempo desde o início do jogo até o presente, e parará de calcular quando o jogo pausar
Time.deltaTime: Indica o tempo desde o quadro anterior até o tempo atual, em segundos
Time.timeScale: Escala de tempo, padrão É 1, se definido <1, significa que o tempo diminui, se definido >1, significa que o tempo acelera, o que pode ser usado para acelerar e desacelerar o jogo, = 0 significa parar

5. Clone o objeto do jogo
Passo a passo:
a. Clone o objeto do jogo na posição do corpo predefinido
GameObject go1 = Instantiate(cube);
b. Clone o objeto do jogo em uma posição fixa (sem operação, a posição é a posição do corpo predefinido)
3. Configuração O objeto do jogo não gira
Quaternion.identity é o mesmo que Quaternion(0,0,0,0)
ao mesmo tempo:
GameObject go2 = Instantiate(cube,new Vector3(0,0,5 ),Quaternion.identity);

6. Destrua o objeto do jogo
a. Destrua diretamente o objeto do jogo go1
Destory(go1);
b. Após parar por 3 segundos, destrua o objeto go2
Destory(go2,3);

7. Encontre o objeto do jogo
a. Encontre o objeto do jogo pelo nome do objeto do jogo (Player)
GameObject cube1 = GameObject.Find(“Player”);
Desvantagem 1: Aparece um nome duplicado, você pode não encontrar o que deseja
Desvantagem 2: Se o objeto Muito, muito desempenho
b. Encontre o objeto do jogo através do nome da tag
GameObje cube2 = GameObject.FindWithTag("Player");
Desvantagem 1: Aparecem nomes duplicados, você pode não encontrar o que deseja
Desvantagem 2: Não muito desempenho
c , Encontre vários objetos de jogo com a mesma tag
GameObject[] objs = GameObject.FindGameObjectsWithTag("Player");

8. Obtenha e adicione componentes

//1)、获取脚本组件Move(本脚本和Move脚本在同一个游戏对象上)
Move m = transform.GetComponent<Move>();
//2)、本脚本不和Move脚本在同一个游戏对象
//a.找到游戏对象(假设脚本在Main Camera上)
GameObject camera = GameObject.Find(“Main Camera”);
//GameObject camera = GameObject.FindWithTag(“Main Camera”);
//b.查找游戏对象上面的脚本
Move m = camera.transform.GetComponent<Move>();
//3)、添加组件(Rigidbody)
a、Rigidbody r = gameObject.AddComponent<Rigidbody>();//添加刚体
b、r.AddForce(Vector3.forward*1000);//给向前的力

9. Random
// retorna um número entre 0,0 (inclusive) e 1,0 (inclusive)
float a = Random.value;
//inclui o mínimo, mas não o máximo
int b = Random.Range(0,100);
//inclui o máximo e float mínimo
c = Aleatório Range(0.0f,5.5f);

10. Evento de entrada
a. Evento do mouse
GetMouseButton(0): pressione o botão esquerdo do mouse e o programa continua em execução, solte-o para parar
GetMouseButton(1): pressione o botão direito do mouse e o programa continua em execução, solte-o para parar
GetMouseButton ( 2): Pressione o botão do meio do mouse e o programa continua em execução e solte-o para parar
GetMouseButtonDown(0): Quando o
botão esquerdo do mouse é pressionado, o programa é executado
uma vez (2): Quando o botão do meio do mouse é pressionado, o programa não é executado e, quando o botão do meio do mouse é liberado, o programa é executado uma vez.
0 = "Fire1" 1 = "Fire2" 2 = "Fire3"
GetButtonDown("Fire1");
Expansão:
void OnMouseEnter(){} indica que o método será executado quando o mouse mover a posição
void OnMouseExit(){} indica que o mouse sai da posição A posição muda de volta para o original
b. Evento do teclado
Input.GetKeyDown(KeyCode.A) //W, S, D
Input.GetKeyDown(KeyCode.LeftArrow) //RightArrow UpArrow DownArrow
Input.GetDown (KeyCode.Space)
construção personalizada horizontal e vertical
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis(“Vertical”);
transform.Translate(new Vector3(h,0,v) Time.deltaTime speed);
c. O botão personalizado
GetButton retorna true de acordo com o nome do botão quando o botão virtual correspondente é hora pressionada.
GetButtonDown retorna true no quadro em que o botão virtual com o nome fornecido é pressionado.
GetButtonUp retorna true quando o usuário libera o botão virtual com o nome especificado.

11. Corrotina
insira a descrição da imagem aqui

 //使用协程(不要单独放在Update中,如果要放就添加条件)
 void Start(){
    
    StartCoroutine(“Print”)}//或者Print()//方法名
 IEnumerator Print()
{
    
    
   yield return new WaitForSeconds(3f);
   print(1);
}
//停止协程
//打印5个数字,每隔1秒打印一个数字,当打印到3的时候停止打印
Coroutine c;
Void Start(){
    
    c=StartCoroutine(Clone())}
IEnumerator Clone()
{
    
    
 for(int i=1;i<=5;i++)
 {
    
    
  print(i);
  if(i==3)
  {
    
    StopCoroutine(c)}
 }
  Yield return new WaitForSeconds(1);
}

12. Comissões e eventos
Como ainda não aprendi, não vou escrever.

Pequena questão: O cubo é deslocado, girado e dimensionado por um certo ponto de si mesmo
Resposta: Crie um objeto pai (objeto vazio) para o cubo, de forma que quando o objeto pai girar, o cubo também gire com o objeto pai.

Acho que você gosta

Origin blog.csdn.net/weixin_44706943/article/details/126473499
Recomendado
Clasificación