fullstack

[Unity] Spine 오브젝트 tint/dark color 변경하기

Unity

unity 에서 spine 오브젝트 material의 tint color 와 dark color 를 변경하는 방법 입니다

 

우선 shader를 Spine/Skeleton Tint 로 변경해 줍니다

 

코드는 다음과 같습니다

private MeshRenderer _renderer;
private MaterialPropertyBlock _block;

void Start()
{
    _renderer = GetComponent<MeshRenderer>();
    _block = new MaterialPropertyBlock();
    
    _renderer.SetPropertyBlock(_block);
    
    int id = Shader.PropertyToID("_Black");

    _block.SetColor(id, Color.red);
    _renderer.SetPropertyBlock(_block);
}

 

여기서 PropertyToId 를 "_Color" 라고 할 경우 Tint Color를, "_Black" 이라고 할 경우 Dark Color 를 변경할 수 있습니다

 

MaterialPropertyBlock 을 이용하여 원하는 색을 적용시켜 주면 됩니다

 

이를 반복문으로 구현하면 이런식으로 데미지를 받는 것 같은 효과를 줄 수 있습니다