コガネブログ

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

【Unity】【NGUI】ラベルのフォントサイズや文字色のルールを管理してシーンに反映するスクリプト紹介

はじめに ゲームの UI を作成していると、たくさんの UI オブジェクトをシーンに配置する必要が出てきます スマホゲームだと 100 を超える画面を作成することもあるため、 後からスプライトやラベルのレギュレーションを変えようとすると、 作業に大量の時間…

【Unity】【NGUI】アトラスに含まれているスプライト名と書式指定関数を管理するクラスを自動生成するエディタ拡張

はじめに var uiSprite = GetComponent<UISprite>(); uiSprite.spriteName = "cursor_right"; uiSprite.spriteName = "cursor_" + dirType.ToString(); Unity で NGUI を使用してゲームを開発していると 上記のように、プログラムからスプライトの名前を変更することが</uisprite>…

【Unity】ことわざ通り遊んで高得点を狙うゲーム「ネコにこばん!ブタにしんじゅ!」をunityroomに公開しました

ネコにこばん!ブタにしんじゅ! | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 昔、Unity で Android / iOS 向けに開発したゲームを 昨日、WebGL 版に移植してunityroomに公開しました ゲーム概要 ことわざ通りに遊ぼう! ●ゲ…

【Unity】色を駆使して高得点を狙うアクションパズルゲーム「色集め」をunityroomに公開しました

色集め | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう 昔、FlashDevelop(http://www.flashdevelop.org/)を使用して作ったゲームを 昨日、Unityに移植してunityroomに公開しました ゲーム概要 色を駆使して高得点を狙う アク…

【Unity】【NGUI】非アクティブな UISprite の大きさを画像サイズに合わせることができる拡張メソッド

public static class UISpriteExt { public static void Snap( this UISprite self ) { var data = self.GetAtlasSprite(); self.width = data.width ; self.height = data.height ; } } var sprite = GetComponent<UISprite>(); sprite.Snap(); NGUIがデフォルトで用</uisprite>…

【Unity】【NGUI】文字列にカラータグを含む場合 true を返す拡張メソッド

using System.Text.RegularExpressions; public static class StringExt { private static readonly Regex COLOR_TAG_PATTERN = new Regex( @"(\[[0-9A-F]{6}\])", RegexOptions.IgnoreCase ); public static bool ContainsColorTag( this string self ) { r…

【Unity】Androidにおいて、ソフトウェアキーボードの文字色が白色になり、背景色と同化して見えなくなる不具合の修正方法

遭遇した環境 Unity 5.4.3f1 修正方法 AndroidManifest.xml の application タグに下記の記述を追加する

【Unity】【NGUI】UIRoot の子オブジェクトのグローバル座標を設定する拡張メソッド

using UnityEngine; /// <summary> /// UIWidget 型の拡張メソッドを管理するクラス /// </summary> public static class UIWidgetExt { /// <summary> /// UIRoot の子オブジェクトのグローバル座標を返します /// </summary> public static Vector3 GetGlobalPosition( this Component self ) { i…

【Unity】【NGUI】UIRoot の子オブジェクトのグローバル座標を返す拡張メソッド

using UnityEngine; /// <summary> /// UIWidget 型の拡張メソッドを管理するクラス /// </summary> public static class UIWidgetExt { /// <summary> /// UIRoot の子オブジェクトのグローバル座標を返します /// </summary> public static Vector3 GetGlobalPosition( this Component self ) { i…

【Unity】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するボタンをInspectorに追加するエディタ拡張

using System.Linq; using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( BoxCollider ), true )] public sealed class BoxColliderInspector : Editor { public override void OnInspectorGUI() { DrawDefaultInspecto…

【Unity】【NGUI】BoxColliderの位置とサイズをUIWidgetのパラメータに合わせて調整するコンテキストメニューを追加するエディタ拡張

using UnityEditor; using UnityEngine; public static class BoxColliderContextMenu { [MenuItem( "CONTEXT/BoxCollider/Adjust To Match" )] private static void AdjustToMatch( MenuCommand command ) { var boxCollider = command.context as BoxColli…

【NGUI】NGUIでマスクを使用する方法

UIPanel を配置する 「Clipping」を「Texture Mask」に設定する マスクに使用するテクスチャを設定する UIPanel の子供にマスクを適用したいオブジェクトを配置する

【Unity】NGUIのUISpriteのサイズが画像サイズと等しいかどうかを確認する拡張メソッド

using NwgLibrary; namespace Cham { /// <summary> /// UISprite 型の拡張メソッドを管理するクラス /// </summary> public static class UISpriteExt { /// <summary> /// スナップされている場合 true を返します /// </summary> public static bool IsSnapped( this UISprite self ) { var data…

【Unity】【NGUI】UICenterOnChildのInspectorに整列用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UICenterOnChild ), true )] public sealed class UICenterOnChildEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); if ( GUIL…

【Unity】【NGUI】UIWrapContentのInspectorにソート用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIWrapContent ), true )] public sealed class UIWrapContentEditorCustom : UIWrapContentEditor { public override void OnInspectorGUI() { base.OnInspectorGU…

【Unity】【NGUI】UIScrollViewのInspectorにリセット用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIScrollView ), true )] public sealed class UIScrollViewEditorCustom : UIScrollViewEditor { public override void OnInspectorGUI() { base.OnInspectorGUI()…

【Unity】【NGUI】UIGridのInspectorに整列用のボタンを追加するエディタ拡張

using UnityEditor; using UnityEngine; [CanEditMultipleObjects] [CustomEditor( typeof( UIGrid ), true )] public sealed class UIGridEditorCustom : UIGridEditor { public override void OnInspectorGUI() { base.OnInspectorGUI(); if ( GUILayout.B…

【Unity】「Easy Touch」でNGUIのオブジェクトを2本指で操作された時に、イベントを呼び出されないようにする方法

バージョン 5.0.11 対応方法 EasyTouch.csの934行目以降に下記の処理を追加する // NGUI if (enabledNGuiMode){ if (IsTouchOverNGui(fingers[twoFinger.finger0].position) && IsTouchOverNGui(fingers[twoFinger.finger1].position)) { twoFinger.isOverGu…

【Unity】NGUI「EVENT SYSTEM」翻訳

Colliderがアタッチされているすべてのゲームオブジェクトは イベントを受け取ることが可能 using UnityEngine; public class Example : MonoBehaviour { private void OnHover( bool isOver ) { Debug.Log( "OnHover" ); } private void OnPress( bool isPr…

【Unity】NGUI「CONTEXT MENUS」翻訳

便利なメニュー ショートカットキーで実行 ショートカットキー 内容 Alt+Shift+N 選択中のオブジェクトの子に空のオブジェクトを作成 Alt+Shift+C 選択中のオブジェクトにBoxColliderをアタッチ Alt+Shift+P 選択中のオブジェクトのサイズをスナップ Unityの…

【Unity】NGUI「THE BASICS」翻訳

UIの作り方 1. プレハブをProjectビューからSceneビューにドラッグする 2. Unityのメニューから作成する 3. ショートカットキーを使用する ショートカットキー 内容 Alt+Shift+S UISprite作成 Alt+Shift+L UILabel作成 Alt+Shift+T UITexture作成 Alt+Shift+…

【Unity】NGUIのUISpriteをUIWidgetに置き換えるコンテキストメニューを追加するエディタ拡張

目次 概要

【Unity】NGUIのUISpriteに有効なスプライト名が設定されているかどうかを確認する拡張メソッド

using System.Linq; public static class UISpriteExtensions { /// <summary> /// 有効なスプライト名が設定されている場合 true を返します /// </summary> public static bool IsValidSpriteName( this UISprite self ) { var spriteName = self.spriteName; var spriteList …

【Unity】NGUIで使用可能なBBCodeを文字列から削除して返す拡張メソッド

using System.Text.RegularExpressions; public static class StringExtensions { private const RegexOptions OPTIONS = RegexOptions.IgnoreCase; public static string RemoveBBCode( this string self ) { self = Regex.Replace( self, @"\[b\](.*)\[\/b…

【Unity】HierarchyにNGUIのUIWidgetのdepthを編集するGUIを表示するエディタ拡張

概要 類似記事 関連記事

【GREE Creators' Meetup】「オススメしたい Unity 4大トピック ~Shader / Animation / GUI / Effect~」メモ

【Unity】GREE Creators' Meetup 第2回「オススメしたい Unity 4大トピック ~Shader / Animation / GUI / Effect~」レポート - Qiitaqiita.com

【Unity】NGUIのスプライトにマウスポインタが重なった時の演出を実装する その2

using UnityEngine; public class ButtonMotion : MonoBehaviour { public float Deceleration = 0.6f; public float Friction = 0.8f; public float MinScale = 1; public float MaxScale = 1.5f; private float mAmplitude; private float mTargetScale; p…

【Unity】NGUIのスプライトにマウスポインタが重なった時の演出を実装する

using UnityEngine; public class ButtonMotion : MonoBehaviour { public float Duration = 0.2f; public float MinScale = 1; public float MaxScale = 1.5f; public float Elastic = 0.4f; private float mTime; private bool mIsHover; private void Awa…

【GameJam】第1回社内ゲームジャムを行いました!!

昨日の9/23(火)が祝日だったので、 会社のPCをお借りしてプログラマ数名で1日でゲームジャムを行いました そこで完成したゲームをブログに載せておこうと思います。遊んで頂けると嬉しいです http://unityroom.com/games/play/268 今回は下記のようなルール…

【Unity】「Windows Phone/Storeユニバーサルアプリ iOS/Androidからの移植作業時に発生した課題実例」レポート

~Unite 2014(Seattle) を踏まえて~ Windows Phone 8.1 アプリ開発と Unity ゲーム開発の夕べ : ATND Windows Phone/Storeユニバーサルアプリ iOS/Androidからの移植作業時に発生した課題実例 株式会社ポケット・クエリーズ 代表取締役 佐々木 宣彦様 移植…