본문 바로가기
프로그래밍/Unity

원형 그래프 (Kerisdiagramm)

by neive 2020. 9. 18.
728x90

위와 같이 프리팹을 구성해주시고 아래 추가해드릴 소스의 컴포넌트를 부착합니다 아.. 그리고 보기 처럼 흰 원형 이미지도 필요하죠
에잉.. 하는김에 이미지도 올리자;;

 

UGUI건 NGUI 건 어쨌든 프로그래스형 이미지 컴포넌트를 달아주시고 위에 만든 컴포넌트 Sprite_Circle 에 링크 (물론 본인 UI 에 따라 코드는 조금 수정을 하셔야겠죠 ㅋ) 게이지 방향에 따라 Invert Fill 같은 요소도 세팅

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UI_Kerisdiagramm : MonoBehaviour
{
    public UISprite m_SpriteCircle;

    float m_CurRatio = 0.0f;

    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine(Add_(0.2f, Color.red));
        StartCoroutine(Add_(0.3f, Color.blue));
        StartCoroutine(Add_(0.1f, Color.green));
        StartCoroutine(Add_(0.2f, Color.yellow));
        StartCoroutine(Add_(0.1f, Color.cyan));
        StartCoroutine(Add_(0.1f, Color.gray));
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public GameObject Add(float ratio, Color color)
    {
        GameObject tmp = Instantiate(m_SpriteCircle.gameObject, gameObject.transform) as GameObject;
        tmp.GetComponent<UISprite>().fillAmount = ratio;
        tmp.GetComponent<UISprite>().color = color;
        tmp.transform.rotation = Quaternion.AngleAxis(m_CurRatio * -360, Vector3.forward);
        m_CurRatio += ratio;
        return tmp;
    }

    public IEnumerator Add_(float ratio, Color color)
    {
        GameObject tmp = Instantiate(m_SpriteCircle.gameObject, gameObject.transform) as GameObject;
        yield return null; // 생성 직후 fillamount 입력시 값이 변경 안되는 경우가 있음
        tmp.GetComponent<UISprite>().fillAmount = ratio;
        tmp.GetComponent<UISprite>().color = color;
        tmp.transform.rotation = Quaternion.AngleAxis(m_CurRatio * -360, Vector3.forward);
        m_CurRatio += ratio;
    }
}

 

 

이렇게 됩니다- 여기에 텍스트 박는건 조금 더 응용해보시면 가능할테니 생략;

728x90

'프로그래밍 > Unity' 카테고리의 다른 글

NGUI 스크롤뷰 만들기  (0) 2020.09.23
rotate 값 360 -> 0~1 구하기  (0) 2020.09.22
csv 파일 쓰기  (0) 2020.09.08
Load Resources Csv & delegate & parser  (0) 2020.09.03
목록에 없는 API 레벨로 빌드하기  (0) 2020.08.26

댓글