[TUTORIAL] Script de derrubar arvores do Terrain
2 participantes
Página 1 de 1
[TUTORIAL] Script de derrubar arvores do Terrain
Oi! bom antes eu estava com uma duvida aqui no fórum de como derrubar arvores do Terrain eu consegui um script para isso e decidi
compartilha-lo com vocês
Bom primeiro crie um script em C# com o nome TreeChop e cole o codigo abaixo nele.
Bom é isso a parte do Life das arvores eu que implemente no scirpt.
Aqui o link do poste original caso queira dar uma olhada : http://forum.unity3d.com/threads/finally-removing-trees-and-the-colliders.110354/
compartilha-lo com vocês
Bom primeiro crie um script em C# com o nome TreeChop e cole o codigo abaixo nele.
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class TreeChop : MonoBehaviour
{
public GameObject FallingTreePrefab;
private List<TreeInstance> TreeInstances; //Prefab da arvore destruída
private float[] TreesLife; // Vida das arvores
private void Start()
{
int cont = 0;
TreeInstances = new List<TreeInstance>(Terrain.activeTerrain.terrainData.treeInstances);
TreesLife = new float[TreeInstances.Count];
while(cont < TreesLife.Length)
{
TreesLife [cont] = 100;
cont++;
}
}
private void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 10.0f))
{
if (hit.collider.name != Terrain.activeTerrain.name)
{return;}
float sampleHeight = Terrain.activeTerrain.SampleHeight(hit.point);
if (hit.point.y <= sampleHeight + 0.01f)
{return;}
TerrainData terrain = Terrain.activeTerrain.terrainData;
TreeInstance[] treeInstances = terrain.treeInstances;
float maxDistance = float.MaxValue;
Vector3 closestTreePosition = new Vector3();
int closestTreeIndex = 0;
for (int i = 0; i < treeInstances.Length; i++)
{
TreeInstance currentTree = treeInstances[i];
Vector3 currentTreeWorldPosition = Vector3.Scale(currentTree.position, terrain.size) + Terrain.activeTerrain.transform.position;
float distance = Vector3.Distance(currentTreeWorldPosition, hit.point);
if (distance < maxDistance)
{
maxDistance = distance;
closestTreeIndex = i;
closestTreePosition = currentTreeWorldPosition;
}
}
TreesLife [closestTreeIndex] -= 10;
if(TreesLife[closestTreeIndex] <= 0)
{
TreeInstances.RemoveAt(closestTreeIndex);
terrain.treeInstances = TreeInstances.ToArray();
float[,] heights = terrain.GetHeights(0, 0, 0, 0);
terrain.SetHeights(0, 0, heights);
Instantiate(FallingTreePrefab, closestTreePosition, Quaternion.identity);
}
}
}
}
}
Bom é isso a parte do Life das arvores eu que implemente no scirpt.
Aqui o link do poste original caso queira dar uma olhada : http://forum.unity3d.com/threads/finally-removing-trees-and-the-colliders.110354/
Matheus sonico- Avançado
- PONTOS : 3838
REPUTAÇÃO : 29
Idade : 22
Respeito as regras :
Re: [TUTORIAL] Script de derrubar arvores do Terrain
E como ele funciona, dá pra por com a tool de tree? Implementar drop de recursos?
WiredD- Avançado
- PONTOS : 3328
REPUTAÇÃO : 14
Respeito as regras :
Re: [TUTORIAL] Script de derrubar arvores do Terrain
Bom é só pegar o script e colocar no seu player mais aconselho estuda-lo primeiro antes de adicionar algo novo á ele no caso a parte do life eu tive que fazer pra poder ficar mais "completo" o scriptWiredD escreveu:E como ele funciona, dá pra por com a tool de tree? Implementar drop de recursos?
Matheus sonico- Avançado
- PONTOS : 3838
REPUTAÇÃO : 29
Idade : 22
Respeito as regras :
Re: [TUTORIAL] Script de derrubar arvores do Terrain
Matheus sonico escreveu:Bom é só pegar o script e colocar no seu player mais aconselho estuda-lo primeiro antes de adicionar algo novo á ele no caso a parte do life eu tive que fazer pra poder ficar mais "completo" o scriptWiredD escreveu:E como ele funciona, dá pra por com a tool de tree? Implementar drop de recursos?
Consegui aqui, ele remove as arvores que colocou no terreno, e cria delas um prefab já com os scripts e etc que estão anexados, script que aposto que muitos procuravam kkk vlws
Consegue colocar para ao inves de clicar nelas, soltar o prefab com o botao de tiro?
WiredD- Avançado
- PONTOS : 3328
REPUTAÇÃO : 14
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Derrubar arvores e dropar madeiras dela
» [TUTORIAL] Criar árvores fácilmente com o criador de árvores da Unity
» [Ajuda]Arvores no terrain
» Como colocar arvores configuradas pelo terrain?
» [TUTORIAL] Script de um animal!!!
» [TUTORIAL] Criar árvores fácilmente com o criador de árvores da Unity
» [Ajuda]Arvores no terrain
» Como colocar arvores configuradas pelo terrain?
» [TUTORIAL] Script de um animal!!!
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos