[Dùvida] Som de passos em diferentes terrenos
3 participantes
Página 1 de 1
[Dùvida] Som de passos em diferentes terrenos
Tem como colocar varios sons de passos em um unico Terrain? Por exemplo, ando na grama um som, no asfalto outro.. Porem é um unico terrain apenas com texturas diferentes ;-;
WiredD- Avançado
- PONTOS : 3326
REPUTAÇÃO : 14
Respeito as regras :
Re: [Dùvida] Som de passos em diferentes terrenos
Manawydan escreveu:O marcos tem um video antigo sobre isso:
Sim mais separadamente em um terrain não dá? Create object > 3d object > Terrain
WiredD- Avançado
- PONTOS : 3326
REPUTAÇÃO : 14
Respeito as regras :
Re: [Dùvida] Som de passos em diferentes terrenos
Olha tenho um script que detecta a textura do terreno que o player está colidindo você pode pegar ele e estuda-lo para aplica-lo em seu jogo
using UnityEngine;
using System.Collections;
public class GetTerrainPixel : MonoBehaviour {
public int currentSurface;
public int surfaceIndex = 0;
public Terrain terrain;
private TerrainData terrainData;
private Vector3 terrainPos;
void Update (){
currentSurface = surfaceIndex;
if(terrain != null)
{
terrainData = terrain.terrainData;
terrainPos = terrain.transform.position;
surfaceIndex = GetMainTexture( transform.position );
}
}
float[] GetTextureMix ( Vector3 worldPos ){
int mapX = (int)(((worldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth );
int mapZ = (int)(((worldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight );
float[,,] splatmapData = terrainData.GetAlphamaps( mapX, mapZ, 1, 1 );
float[] cellMix = new float[ splatmapData.GetUpperBound(2) + 1 ];
for ( int n = 0; n < cellMix.Length; n ++ )
{ cellMix[n] = splatmapData[ 0, 0, n ];}
return cellMix;
}
int GetMainTexture ( Vector3 worldPos ){
float[] mix = GetTextureMix( worldPos );
float maxMix = 0;
int maxIndex = 0;
for ( int n = 0; n < mix.Length; n ++ )
{
if ( mix[n] > maxMix )
{
maxIndex = n;
maxMix = mix[n];
}
}
return maxIndex;
}
}
using UnityEngine;
using System.Collections;
public class GetTerrainPixel : MonoBehaviour {
public int currentSurface;
public int surfaceIndex = 0;
public Terrain terrain;
private TerrainData terrainData;
private Vector3 terrainPos;
void Update (){
currentSurface = surfaceIndex;
if(terrain != null)
{
terrainData = terrain.terrainData;
terrainPos = terrain.transform.position;
surfaceIndex = GetMainTexture( transform.position );
}
}
float[] GetTextureMix ( Vector3 worldPos ){
int mapX = (int)(((worldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth );
int mapZ = (int)(((worldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight );
float[,,] splatmapData = terrainData.GetAlphamaps( mapX, mapZ, 1, 1 );
float[] cellMix = new float[ splatmapData.GetUpperBound(2) + 1 ];
for ( int n = 0; n < cellMix.Length; n ++ )
{ cellMix[n] = splatmapData[ 0, 0, n ];}
return cellMix;
}
int GetMainTexture ( Vector3 worldPos ){
float[] mix = GetTextureMix( worldPos );
float maxMix = 0;
int maxIndex = 0;
for ( int n = 0; n < mix.Length; n ++ )
{
if ( mix[n] > maxMix )
{
maxIndex = n;
maxMix = mix[n];
}
}
return maxIndex;
}
}
Matheus sonico- Avançado
- PONTOS : 3836
REPUTAÇÃO : 29
Idade : 22
Respeito as regras :
Re: [Dùvida] Som de passos em diferentes terrenos
Matheus sonico escreveu:Olha tenho um script que detecta a textura do terreno que o player está colidindo você pode pegar ele e estuda-lo para aplica-lo em seu jogo
using UnityEngine;
using System.Collections;
public class GetTerrainPixel : MonoBehaviour {
public int currentSurface;
public int surfaceIndex = 0;
public Terrain terrain;
private TerrainData terrainData;
private Vector3 terrainPos;
void Update (){
currentSurface = surfaceIndex;
if(terrain != null)
{
terrainData = terrain.terrainData;
terrainPos = terrain.transform.position;
surfaceIndex = GetMainTexture( transform.position );
}
}
float[] GetTextureMix ( Vector3 worldPos ){
int mapX = (int)(((worldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth );
int mapZ = (int)(((worldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight );
float[,,] splatmapData = terrainData.GetAlphamaps( mapX, mapZ, 1, 1 );
float[] cellMix = new float[ splatmapData.GetUpperBound(2) + 1 ];
for ( int n = 0; n < cellMix.Length; n ++ )
{ cellMix[n] = splatmapData[ 0, 0, n ];}
return cellMix;
}
int GetMainTexture ( Vector3 worldPos ){
float[] mix = GetTextureMix( worldPos );
float maxMix = 0;
int maxIndex = 0;
for ( int n = 0; n < mix.Length; n ++ )
{
if ( mix[n] > maxMix )
{
maxIndex = n;
maxMix = mix[n];
}
}
return maxIndex;
}
}
Caraca xD Vlw <3 Estarei estudando aqui aq kkkk ^^
WiredD- Avançado
- PONTOS : 3326
REPUTAÇÃO : 14
Respeito as regras :
Re: [Dùvida] Som de passos em diferentes terrenos
WiredD escreveu:Matheus sonico escreveu:Olha tenho um script que detecta a textura do terreno que o player está colidindo você pode pegar ele e estuda-lo para aplica-lo em seu jogo
using UnityEngine;
using System.Collections;
public class GetTerrainPixel : MonoBehaviour {
public int currentSurface;
public int surfaceIndex = 0;
public Terrain terrain;
private TerrainData terrainData;
private Vector3 terrainPos;
void Update (){
currentSurface = surfaceIndex;
if(terrain != null)
{
terrainData = terrain.terrainData;
terrainPos = terrain.transform.position;
surfaceIndex = GetMainTexture( transform.position );
}
}
float[] GetTextureMix ( Vector3 worldPos ){
int mapX = (int)(((worldPos.x - terrainPos.x) / terrainData.size.x) * terrainData.alphamapWidth );
int mapZ = (int)(((worldPos.z - terrainPos.z) / terrainData.size.z) * terrainData.alphamapHeight );
float[,,] splatmapData = terrainData.GetAlphamaps( mapX, mapZ, 1, 1 );
float[] cellMix = new float[ splatmapData.GetUpperBound(2) + 1 ];
for ( int n = 0; n < cellMix.Length; n ++ )
{ cellMix[n] = splatmapData[ 0, 0, n ];}
return cellMix;
}
int GetMainTexture ( Vector3 worldPos ){
float[] mix = GetTextureMix( worldPos );
float maxMix = 0;
int maxIndex = 0;
for ( int n = 0; n < mix.Length; n ++ )
{
if ( mix[n] > maxMix )
{
maxIndex = n;
maxMix = mix[n];
}
}
return maxIndex;
}
}
Caraca xD Vlw <3 Estarei estudando aqui aq kkkk ^^
dnd espero que ajude também passei bastante tempo procurando um sistema assim XD
Matheus sonico- Avançado
- PONTOS : 3836
REPUTAÇÃO : 29
Idade : 22
Respeito as regras :
Tópicos semelhantes
» Dúvida sobre terrenos em 3D
» Dúvida com sons de passos
» dúvida para fazer sistema de som de passos em terreno
» Como colocar dois backgrounds diferentes para dois canvas diferentes?
» Editor para criar terrenos estilo minecraft ou cubeworld(blocos)
» Dúvida com sons de passos
» dúvida para fazer sistema de som de passos em terreno
» Como colocar dois backgrounds diferentes para dois canvas diferentes?
» Editor para criar terrenos estilo minecraft ou cubeworld(blocos)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos