language:unity:tk2dtoolkit
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판 | |||
language:unity:tk2dtoolkit [2014/05/13 15:15] – kieuns | language:unity:tk2dtoolkit [2024/04/23 22:44] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | |||
+ | ====== SpriteCollection 의 매트리얼 동적 교체 ====== | ||
+ | |||
+ | **tk2dSprite** 에서 매트리얼이 변경 되면, 원래의 매트리얼로 바꿔버리는 바람에 | ||
+ | 오브젝트 인스턴스마다 다른 매트리얼(색상 변경이라든지)을 적용할 수가 없는데... | ||
+ | |||
+ | 정식으로 지원 되는 방법은 없고, | ||
+ | |||
+ | **tk2dSprite** 클래스를 고치는 방법 밖에 없다. | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | <code csharp> | ||
+ | public class tk2dSprite : tk2dBaseSprite { | ||
+ | //... | ||
+ | static bool ignoreMaterialChange = true; | ||
+ | //... 원래 코드 ... | ||
+ | protected override void UpdateMaterial() | ||
+ | { | ||
+ | if( ignoreMaterialChange ) | ||
+ | { | ||
+ | if( renderer.sharedMaterial == null ) | ||
+ | renderer.material = collectionInst.spriteDefinitions[spriteId].material; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | if( renderer.sharedMaterial != collectionInst.spriteDefinitions[spriteId].material ) | ||
+ | renderer.material = collectionInst.spriteDefinitions[spriteId].material; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | {{tag> UpdateNeed}} | ||