- Spine2D의 MecaAnim(Animator)에서 <MeshRenderer> 컴퍼넌트를 빼옴
- <MeshRenderer> 컴퍼넌트의 마테리얼들을 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");
}
}
}