코드를 통해 지형 텍스처의 오프셋 (2)을 변경하고 싶습니다. 지형에 도로 이미지를 텍스처로 추가했습니다. 관련 코드를 온라인에서 찾았지만이 경우 렌더러의 역할을 파악할 수 없습니다.코드에서 지형 텍스처를 변경하는 방법
코드 이외에도 코드를 통해 텍스처를 변경하기 위해 취해야 할 첫 번째 단계를 알고 싶습니다. (기본적으로 설정). 그리고 렌더러의 역할에 대해 언급하십시오. 유니티 지형 텍스처에서
코드를 통해 지형 텍스처의 오프셋 (2)을 변경하고 싶습니다. 지형에 도로 이미지를 텍스처로 추가했습니다. 관련 코드를 온라인에서 찾았지만이 경우 렌더러의 역할을 파악할 수 없습니다.코드에서 지형 텍스처를 변경하는 방법
코드 이외에도 코드를 통해 텍스처를 변경하기 위해 취해야 할 첫 번째 단계를 알고 싶습니다. (기본적으로 설정). 그리고 렌더러의 역할에 대해 언급하십시오. 유니티 지형 텍스처에서
는 SplatPrototype
클래스에 의해 처리됩니다. See documentation
Splat 프로토 타입은 TerrainData에서 사용되는 텍스처입니다.
그래서 당신이 지형의 텍스처를 변경하려는 경우 새 SplatPrototype
를 만들고이 TerrainData
의 splatPrototype 변수로 설정해야.
거기 당신은 metallic
, normalMap
, smoothness
, texture
, tileSize
하여 원하는 tileOffset
의 값을 설정할 수 있습니다.
private void SetTerrainSplatMap(Terrain terrain, Texture2D[] textures)
{
var terrainData = terrain.terrainData;
// The Splat map (Textures)
SplatPrototype[] splatPrototype = new SplatPrototype[terrainData.splatPrototypes.Length];
for (int i = 0; i < terrainData.splatPrototypes.Length; i++)
{
splatPrototype[i] = new SplatPrototype();
splatPrototype[i].texture = textures[i]; //Sets the texture
splatPrototype[i].tileSize = new Vector2(terrainData.splatPrototypes[i].tileSize.x, terrainData.splatPrototypes[i].tileSize.y); //Sets the size of the texture
splatPrototype[i].tileOffset = new Vector2(terrainData.splatPrototypes[i].tileOffset.x, terrainData.splatPrototypes[i].tileOffset.y); //Sets the size of the texture
}
terrainData.splatPrototypes = splatPrototype;
}
이 ME
splat[i].tileOffset = new Vector2(tar.splatPrototypes[i].tileOffset.x, tar.splatPrototypes[i].tileOffset.y+5f);
감사합니다위한 WOKED :
는 다음과 같은 방법을 사용할 수 있습니다. 아프다 그것을 시도하고 알려주십시오. –
@ConnorIglesias 완료되면 해결 된 것으로 표시하는 것을 잊지 마세요. –
@ConnorIglesias 런타임시 Terrain 텍스처를 변경하는 것은 많은 작업이므로 실시간으로 피해야합니다. 개인적으로 나는 레벨 로딩 중에이 방법을 사용합니다. –