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

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.