2014-09-01 6 views
0

메신저에서 빌드에 적용하지, 내 splatmaps 내가 내 지형 그냥 일반 검은 색 구축 그러나 때, 완벽하게 작동합니다.splatmap 텍스처가 절차 적으로 내 하이트를 만들고 스크립트 유니티 편집기에서 <p></p> 내 지형을 선언 단결

내가 splat을 작동시키는 데 필요한 건물을 만들 때 놓칠 수있는 설정이 있습니까?

편집기 http://answers.unity3d.com/storage/temp/31838-untitle2d.png

빌드 http://answers.unity3d.com/storage/temp/31839-untitled.png

나는 자원을 사용하는 대신에 draged 변수로 코드에 텍스처를 추가하는 시도

SplatPrototype[] terrainTexture = new SplatPrototype[4]; 
     terrainTexture[0] = new SplatPrototype(); 
     terrainTexture[0].texture = (Texture2D)Resources.Load("stone"); 
     terrainTexture[1] = new SplatPrototype(); 
     terrainTexture[1].texture = (Texture2D)Resources.Load("sand"); 
     terrainTexture[2] = new SplatPrototype(); 
     terrainTexture[2].texture = (Texture2D)Resources.Load("grass"); 
     terrainTexture[3] = new SplatPrototype(); 
     terrainTexture[3].texture = (Texture2D)Resources.Load("snow"); 

편집 과 코드를 사용하여 그들을로드 .load, also didnt work

편집 나는 그것을 해결할만한 작품을 찾았지만 유감스럽게도 적절한 해결책을 찾지 못했습니다. // answers.unity3d.com/questions/171150/terrain-basemap-texture-through-code.html

답변

0

당신이 필요합니다 : 사람은

HTTP 문제의 원인이 될 수있는 일을 볼 수 있습니다 빌드에 여분의 쉐이더를 포함 시키십시오. 편집 -> 프로젝트 설정 -> 그래픽으로 이동하십시오. 검사관에서 크기를 늘리십시오. 새로운 슬롯에서 Nature/Terrain/Diffuse를 선택하십시오.

이렇게해야하는 이유는 Unity가 빌드에 포함 할 항목과 제외 할 항목을 결정하기 위해 장면에서 참조되는 모든 자산을 검색한다는 것입니다. 지형은 절차 적으로 제작되었으므로 지형 객체가없고 지형 재질도 없으므로 필요한 쉐이더는 포함되어 있지 않습니다. 위의 단계를 따르면 기본적으로 Unity에 Unity가 필요하다고 생각하기 때문에이를 포함시킬 수 있습니다.

0
내가 위의 대답에 몇 가지를 추가 할

: 세부 질감과 나무를 포함하여,

  1. 은 프로토 타입이라는 TerrainData.RefreshPrototypes을 (새로 고침가) 가능한 모든 프로토 타입을 갱신하도록되어 . 기초 텍스처가 프로토 타입 목록의 일부이기 때문에 단일화가 지형에 대한 새로운 텍스처를 업데이트하는 데 도움이됩니다. (그리고 편집기 내부에서도 작동합니다.)

  2. 또한 다른 사람들은 텍스처 데이터를 변경 (즉, 픽셀 데이터 변경)하여 단일성으로 인해 지형에 사용 된 재료가 업데이트된다는 사실을 발견했습니다 . 그들은 빈 지형을 만들고 빈 기본 텍스처를 할당 한 다음 런타임시 높이 맵, 스 플랫 맵을로드하고 텍스처를 덮어 씁니다. 이로 인해 일치가 새로 생성 된 지형을 표시합니다.

나는 지형 자산의 대부분은 매우 문서화되지 않은 영역 (너무, 오히려 역기능) ... 행운처럼이 어떤을하는 데 도움이되기를 바랍니다!