NPC STEVE

NPC STEVE MINECRAFT NA UNITY

NPC Steve, inspirado no famoso jogo Minecraft, é um exemplo perfeito de como esses personagens desempenham papéis essenciais e diversos dentro do jogo. Eles podem interagir com o jogador, fornecer informações, avançar a narrativa e enriquecer a jogabilidade.

Passo 1- crie um script para criar um objetos primitivos

NPC STEVE

Esse código é um script em C# para o Unity, e sua função é criar um objeto primitivo na cena quando o jogo começa, que será o nosso NPC (Personagem Não Jogável). Vou explicar cada parte:

1. `using System.Collections; using System.Collections.Generic; using UnityEngine;`: Essas são declarações de namespace que permitem usar classes e funcionalidades da biblioteca padrão do C# e do Unity. `System.Collections` e `System.Collections.Generic` são usadas para coleções e listas, enquanto `UnityEngine` é essencial para o desenvolvimento de jogos no Unity.

2. `public class CreatePrimitives : MonoBehaviour`: Define uma nova classe chamada `CreatePrimitives` que herda de `MonoBehaviour`. Isso significa que o script pode ser anexado a um GameObject na cena e terá acesso a funções específicas do Unity, como `Start`.

3. `void Start()`: O método `Start` é chamado automaticamente pelo Unity antes do início da primeira atualização do quadro (frame). É um local comum para inicializações e configuração de objetos.

4. `GameObject.CreatePrimitive(PrimitiveType.Cube)`: Este comando cria um novo objeto primitivo do tipo `Cube` na cena. `PrimitiveType.Cube` é um tipo de objeto que o Unity já fornece, e o método `CreatePrimitive` é usado para criar uma instância desse objeto.

5. `.transform.position = new Vector3(0, 0, 0);`: Define a posição do cubo criado para `(0, 0, 0)`, que é o centro do mundo na cena do Unity. `transform` é uma propriedade do GameObject que controla sua posição, rotação e escala, e `Vector3` é uma estrutura que representa um ponto no espaço 3D.

Esse script cria seis cubos e os posiciona em locais específicos para formar uma figura. No Start, ele cria e posiciona os cubos, mas não há lógica adicional no Update para alterar o comportamento do objeto. Se desejar adicionar movimento ou outras interações, seria necessário implementar essa lógica no método Update.

				
					using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CreatePrimitives : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        //Creating a Steve figure from Minecraft using Cubes
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(0, 0, 0);
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(-0.5f, 1, 0);
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(0.5f, 1, 0);
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(0.5f, 2, 0);
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(-0.5f, 2, 0);
        GameObject.CreatePrimitive(PrimitiveType.Cube).transform.position = new Vector3(0, 3, 0);
    }

    // Update is called once per frame
    void Update()
    {

    }
}


				
			

Passo 2- adicione movimento para o NPC STEVE

1. Variável do Grupo:

  • `private GameObject group;`: Declara uma variável privada `group` que armazenará o GameObject que servirá como contêiner para os cubos.

2. Método `Start`:

  • `void Start()`: Método chamado uma vez quando o jogo começa, ideal para inicializações.
  • `group = new GameObject(“CubeGroup”);`: Cria um GameObject vazio chamado “CubeGroup”, que atuará como um contêiner para os cubos.
  • `GameObject cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube);`: Cria um cubo primitivo.
  • `cube1.transform.position = new Vector3(0, 0, 0);`: Define a posição do cubo.
  • `cube1.transform.parent = group.transform;`: Define o cubo como filho do `group`, fazendo com que ele se mova com o grupo.

Este processo é repetido para criar e posicionar outros cubos, formando uma figura de NPC STEVE.

3. Método `Update`:

  • `void Update()`: Método chamado a cada quadro (frame), usado para atualizações contínuas.
  • `group.transform.position += new Vector3(0.01f, 0, 0);`: Move o grupo de cubos ao longo do eixo X, incrementando a posição em 0.01 unidades por quadro. Isso faz com que o NPC STEVE se mova lentamente para a direita.

Resumindo, esse script cria um NPC STEVE em forma de boneco quadrado utilizando cubos e o movimenta ao longo do eixo X.

				
					using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NPC : MonoBehaviour
{
    private GameObject group;

    // Start is called before the first frame update
    void Start()
    {
        // Cria um GameObject vazio para servir como grupo
        group = new GameObject("CubeGroup");

        // Criando uma figura de Steve do Minecraft usando Cubos
        GameObject cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube1.transform.position = new Vector3(0, 0, 0);
        cube1.transform.parent = group.transform;

        GameObject cube2 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube2.transform.position = new Vector3(-0.5f, 1, 0);
        cube2.transform.parent = group.transform;

        GameObject cube3 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube3.transform.position = new Vector3(0.5f, 1, 0);
        cube3.transform.parent = group.transform;

        GameObject cube4 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube4.transform.position = new Vector3(0.5f, 2, 0);
        cube4.transform.parent = group.transform;

        GameObject cube5 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube5.transform.position = new Vector3(-0.5f, 2, 0);
        cube5.transform.parent = group.transform;

        GameObject cube6 = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube6.transform.position = new Vector3(0, 3, 0);
        cube6.transform.parent = group.transform;
    }

    // Update is called once per frame
    void Update()
    {
        // Movimenta o grupo ao longo do eixo X
        group.transform.position += new Vector3(0.01f, 0, 0);
    }
}

				
			

FERRAMENTA DOS ASSETS PARA UNITY

  • UNITY ASSET

Uma loja online integrada ao Unity onde você pode comprar e baixar assets criados por desenvolvedores e artistas. Inclui uma ampla gama de recursos gratuitos e pagos.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *