Unity NGUI의 UIGrid에서 비활성 요소의 공간 압축

3639 단어 NGUIUnity

컨디션


Unity:5.3.7p4
NGUI:3.8.0

개시하다


UIGrid의 요소를 일정 조건으로 GameObject에 추가합니다.설치 후 공간만 남았습니다.
Destroy 그 Object를 계획하고 있을 때, 리뷰어에서 지적한 것이 있기 때문에 총괄해 봅시다.
ScrollView 제작 방법도 정리해 두세요.

선취합

using UnityEngine;
using System.Collections.Generic;

public class NguiGridSample : MonoBehaviour {

    // グリッド
    [SerializeField]
    private UIGrid m_grid;
    // リストのオブジェクト
    private List<Transform> m_Items;

    // Use this for initialization
    void Start () {
        m_Items = m_grid.GetChildList();
    }

    /// <summary>
    /// 青アイテムを非表示にする
    /// </summary>
    public void OnHideBlueButton(){
        if (m_Items == null) {
            return;
        }
        m_Items.ForEach((item) => {
            if(item.gameObject.name == "blue"){
                item.gameObject.SetActive(false);
            }
        });
        m_grid.Reposition();
    }

    /// <summary>
    /// 全アイテム表示する
    /// </summary>
    public void OnShowButton(){
        if (m_Items == null) {
            return;
        }
        m_Items.ForEach((item) => {
            item.gameObject.SetActive(true);
        });
        m_grid.Reposition();
    }       
}

UIGrid.HideInactive가 진짜일 때.


Reposition 시 비활성 요소의 공간을 압축합니다.

UIGrid.HideInactive가 가짜일 때.


Reposition 시 비활성 요소의 공간이 채워지지 않습니다.

해설


NGUI 설치


개인 프로젝트에 NGUI를 설치하고 싶지만 최신 버전은 유료입니다.
http://future-software-labo.anyagent.net/unityngui%E3%82%92%E7%84%A1%E6%96%99%E3%81%A7%E4%BD%BF%E3%81%86/
무료 버전을 설치해 보았지만 너무 큰 차이로 포기하고 작업용 항목에 로컬 지점을 잘라 작업을 진행했다.

ScrollView 만들기


http://naochang.me/?p=146
동영상은 이해하기 쉽다.
인스펙터 설정만으로도 이 정도는 할 수 있다니 정말 대단하군.

UIGrid로 정렬


UIGrid의 하위 객체로서 하나의 요소를 만들고, 이를 복제하기만 하면 일괄적으로 배열할 수 있다.
요소는 Serialize Field에서 UIGrid를 배열하지 않아도 됩니다.GetChildList()를 통해 통합할 수 있습니다.
이번 문제는 인스펙터에서도 볼 수 있는 하이드 인액티브의 행동이다.
ON/OFF에서 각각의 gif 동작이 있습니다.

attach Box Collider 때는 "option+Shift+C"가 편해요.


NGI가 설치되어 있으면 option+Shift+C를 사용할 수 있습니다.
요소 크기와 일치하는 BoxCollider를 설정하는 단축키입니다.

Add Component에서 업로드된 Box Collider



NGI 메뉴 attach의 Box Collider(단축키)



최후


난 그냥 간단한 인스펙터가 설정할 수 있는 항목을 몰랐을 뿐이야...
1부터 시작해서 여러 가지 놀이를 하는 것이 중요하다.
제작후에야 비로소 gif를 제작할 때 마우스의 상자 안과 상자 밖을 녹음하지 않으면 무한 순환을 볼 수 있음을 알아차렸다...
다음에 주의하세요!←이번엔 더 이상 의욕이 없다)

좋은 웹페이지 즐겨찾기