NGUIのUIGridの中で
repositionNow
という機能が気になってちょいと調べてみました。
(機能としてはチェックすると、中のUIパーツを綺麗に整列 してくれるってもの)
内のRePositionにプロジェクトを添付してあります。
中身は指定したターゲットの真ん中にポジションをセットする。というもの
ゲームを起動している状態でない(編集中)でもUpdate ()
が呼ばれるようになっています。
Xpos :そのボタンが左から何個目か
buttonNum :ゲーム上に存在するボタンの数
repositionNow
という機能が気になってちょいと調べてみました。
(機能としてはチェックすると、中のUIパーツを綺麗に整列 してくれるってもの)
Sample Project
https://github.com/mogeta/UnityUtil内のRePositionにプロジェクトを添付してあります。
中身は指定したターゲットの真ん中にポジションをセットする。というもの
解説
UIGridは[ExecuteInEditMode]を宣言しており、ゲームを起動している状態でない(編集中)でもUpdate ()
が呼ばれるようになっています。
Sample Code
NGUIのボタン等につけるXpos :そのボタンが左から何個目か
buttonNum :ゲーム上に存在するボタンの数
using UnityEngine; using System.Collections; [ExecuteInEditMode] public class BottomButtonPosition : MonoBehaviour { public int XPos; public int buttonNum; public bool repositionNow = false; bool mStarted = false; // Use this for initialization void Start () { mStarted = true; Reposition(); } // Update is called once per frame void Update () { if (repositionNow) { repositionNow = false; Reposition(); } } public void Reposition () { if (!mStarted) { repositionNow = true; return; } Transform child = transform.Find("Background"); child.localScale = new Vector3(Screen.width / buttonNum, child.localScale.y, 0); transform.localPosition = new Vector3(Screen.width / buttonNum * XPos + child.localScale.x / 2, child.localScale.y / 2, 0); } }
0 件のコメント :
コメントを投稿