[TUTORIAL] Spawn Terrain aleatório
Página 1 de 1
[TUTORIAL] Spawn Terrain aleatório
É muito facil fazer um esquema de spawn aleatório...
Primeiramente, crie um Terrain ( GameObject>CreateOther>Terrain ) e adicione uma textura de grama e algumas gramas a ele...
após isso, Jogue este script nele...
após isso, jogue este Script no seu player ( este script faz o player nascer sempre em cima do terreno )
Depois disso, Peque um modelo 3D de uma árvore, adicione Collider e este script a ele
E transforme-o em um prefab...
Depois disso basta linkar o proprio terreno na variavel Terreno ( do script que está nele mesmo ) e linke o prefab na variavel Arvore, do script que está no terreno...
agora altere os valores das variáveis...
- arvMax ( maximo de arvores )
- numerodearvores ( numero de arvores )
deixe as 2 em 200 ( é um bom valor )
e o spawn está criado...
É bem simples, más funciona... Estarei trabalhando mais para frente em mudança de textura, etc...
Primeiramente, crie um Terrain ( GameObject>CreateOther>Terrain ) e adicione uma textura de grama e algumas gramas a ele...
após isso, Jogue este script nele...
- Código:
var selfTerrain : Terrain;
var arvMax : int;
var arvore : Transform;
var tempo : float;
var posicao : Vector3;
var numerodearvores : int;
function Awake () {
selfTerrain = GetComponent(Terrain);
GenerateTerrain(Random.Range (10, 50));
}
function Start () {
tempo =0;
arvMax = 0;
}
function Update () {
tempo = tempo + 1*Time.deltaTime;
if (arvMax<numerodearvores && tempo > 0.01 ) {
posicao.x = Random.Range(1.241818,1893.676);
posicao.z = Random.Range(61.44055,1942.262);
posicao.y = Random.Range(0,0);
Instantiate(arvore,posicao,transform.rotation);
tempo=0;
arvMax +=1;
}
}
function GenerateTerrain(tileSize: float) {
//QUANTO MAIOR O NUMERO, MAIS MONTANHAS EXISTIRAO...
var HM : float = Random.Range (20, 400);
//Quanto menores os números no intervalo número, maior as colinas / montanhas será
var divRange:float = Random.Range (10, 30);
var height = selfTerrain.terrainData.heightmapHeight;
var width = selfTerrain.terrainData.heightmapWidth;
//Heights para nossas colinas / montanhas
var hts : float[,] = new float[width,height];
for (var i :float = 0; i < width; i++) {
for (var k :float = 0; k < height; k++) {
hts [i, k] = Mathf.PerlinNoise ((i / width) * tileSize, (k / height) * tileSize) / divRange;
}
}
Debug.LogWarning ("DivRange: " + divRange + " , " + "HTiling: " + HM);
selfTerrain.terrainData.SetHeights (0, 0, hts);
}
após isso, jogue este Script no seu player ( este script faz o player nascer sempre em cima do terreno )
- Código:
function Start () {
transform.position.y = Terrain.activeTerrain.SampleHeight(transform.position)+3;
}
Depois disso, Peque um modelo 3D de uma árvore, adicione Collider e este script a ele
- Código:
function LateUpdate () {
transform.position.y = Terrain.activeTerrain.SampleHeight(transform.position);
}
E transforme-o em um prefab...
Depois disso basta linkar o proprio terreno na variavel Terreno ( do script que está nele mesmo ) e linke o prefab na variavel Arvore, do script que está no terreno...
agora altere os valores das variáveis...
- arvMax ( maximo de arvores )
- numerodearvores ( numero de arvores )
deixe as 2 em 200 ( é um bom valor )
e o spawn está criado...
É bem simples, más funciona... Estarei trabalhando mais para frente em mudança de textura, etc...
Tópicos semelhantes
» [TUTORIAL] Script de Spawn Aleatório
» [TUTORIAL]Spawn de um Trigger em tempo aleatório ( na posição do Player )
» Script de Spawn Aleatório
» [TUTORIAL] Movimento aleatório de um Rigidbody no chão
» spawn aleatorio pelo mapa
» [TUTORIAL]Spawn de um Trigger em tempo aleatório ( na posição do Player )
» Script de Spawn Aleatório
» [TUTORIAL] Movimento aleatório de um Rigidbody no chão
» spawn aleatorio pelo mapa
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos