- Spine2D의 MecaAnim(Animator)에서 <MeshRenderer> 컴퍼넌트를 빼옴
- <MeshRenderer> 컴퍼넌트의 마테리얼들을 sharedMaterials로 가져옴
- materials가 아니라 sharedMaterials를 사용하는 이유
: 왜인지 모르겠지만 적용이 안되는 경우가 있음
: 이쪽이 확실함
- materials가 아니라 sharedMaterials를 사용하는 이유
- 해당 Shader를 상황에 맞게 변경
- 기본 Shader : Spine/Skeleton
- 기본 Outline Shader : Spine/Outline/Skeleton
// :: 중복 방지
private bool iOutline = false;
public void ShowOutline(bool check)
{
// :: 중복 실행 방지
if (iOutline == check)
return;
this.iOutline = check;
// :: 메쉬 렌더러 확인
var meshRenderer = this.Animator.GetComponent<MeshRenderer>();
// :: 상황에 따라 쉐이더 변경
foreach (var mat in meshRenderer.sharedMaterials)
{
if(check)
{
mat.shader = Shader.Find("Spine/Outline/Skeleton");
} else
{
mat.shader = Shader.Find("Spine/Skeleton");
}
}
}
'Unity' 카테고리의 다른 글
[Asset : Utage3] 텍스트 아웃라인 사용 : UguiRichOutline (0) | 2021.10.30 |
---|---|
[Save] 완전히 분해된 Sprite 파츠로 애니메이션 사용하는 법 (0) | 2021.10.19 |
[Save] 버튼의 이미지 모양에 맞춰서 클릭 되도록 하는 부착 스크립트 (0) | 2021.10.13 |
[typeof] T(제네릭)를 게임 이름으로 쓰고 싶을 때 (0) | 2021.06.30 |
Input.multiTouchEnabled (0) | 2021.05.04 |