2016-08-15 1 views
0

Unity 프로젝트에는 몇 가지 자료 파일이있는 폴더가 있습니다. 이 머티리얼은 다양한 메쉬에 할당 할 수 있습니다.이 머티리얼의 목록을 가지고 Update()에서이 목록을 반복하고 싶습니다.Unity의 자료 목록

자동으로이 목록을 유지하는 방법이 있습니까? 폴더에 재질 파일을 추가하고 해당 Material 개체가이 목록에 추가됩니까?

+1

는 에디터 모드 또는 런타임이 작업을 수행 하시겠습니까? –

+0

우메 엘의 질문이 정말 좋다. 대답 해주세요. 그러나 런타임에 수행하기를 원할 경우 재질 배열을 만든 다음 인덱스를 변경하고 새 재질을 메쉬에 할당 할 수 있습니다. – Cabrra

+0

런타임에이 목록을 갖고 싶습니다. – user2424967

답변

2

폴더를 순환하고 .mat 확장자가있는 모든 파일을 찾아 수동으로로드해야합니다.

material file의 이름을 얻기 위해 C# FileDirectory 클래스를보십시오. System.IO. 다음 Resources.Load() I-E로 그들을로드 :

Resources.Load("Material/Night_Sky", typeof(Material)) as Material; 

편집 : 빌드 당신이 System.IO와 재료의 이름을 얻을 수있는 유일한 EDITOR에서 작동됩니다 위의 솔루션입니다. Resources.Load은 빌드에서 잘 작동하지만 재질 이름이 필요합니다. 설명에서 언급 한대로 Resources.LoadAll()이 작업을 수행합니다. 는 또한 Resources.Load()Resources.LoadAll() 모두를 위해, 당신은 당신이 Resources 폴더에로드하려는 모든 재료를 넣어 필요가 즉 : 귀하의 자료에 대한 경로 인 경우

이 님의

Resources.LoadAll("Materials") 

유용한 링크를 : Assets\Resources\Materials 사용해야하는 문서 :
Resources.LoadAll
LoadingResourcesatRuntime

+0

죄송합니다,이 편집기에서만 작동합니다 생각합니다. 그러나 모든 자료를 하나의 폴더에 보관할 경우 Resources.LoadAll()을 사용할 수 있습니다. https://docs.unity3d.com/ScriptReference/Resources.LoadAll.html – Krajca

+0

Theres 리소스 @LoadAll() https://docs.unity3d.com/ScriptReference/Resources.LoadAll.html * @Krajca 18 초에 맞음 :) – mgear

+0

런타임에이 목록을 갖고 싶습니다. – user2424967