コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Sprite で Radial 360 の fillAmount を設定できる「FilledSpriteShader」紹介

はじめに

「FilledSpriteShader」を Unity プロジェクトに導入することで
Sprite で Radial 360 の fillAmount を設定できるようになります

使用例

f:id:baba_s:20191202104639g:plain

使い方

f:id:baba_s:20191202104652p:plain

Sprite Renderer のマテリアルに「SampleMaterial」を設定します
(もしくは Shader が「Unlit/FilledSpriteRadial360」のマテリアルを設定します)

そして、マテリアルのプロパティで

  • FillOriginY
  • FillOriginX
  • Clock wise
  • FillAmount

を設定することで使用できます

using UnityEngine;

public class Example : MonoBehaviour
{
    [SerializeField] private SpriteRenderer m_renderer = null;

    private void Start()
    {
        var mat = m_renderer.material;
        mat.SetFloat( "_FillAmount", 0.5f );
        mat.SetFloat( "_Clockwise", 0 );
        mat.SetFloat( "_FillOriginX", 1 );
        mat.SetFloat( "_FillOriginY", 0 );
    }
}

上記のようにスクリプトからパラメータを変更することもできます