コガネブログ

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

【Unity】RectTransform の anchoredPosition を設定する拡張メソッド

ソースコード using UnityEngine; public static class RectTransformExt { public static void SetAnchoredPositionX ( this RectTransform self, float x ) { var pos = self.anchoredPosition; pos.x = x; self.anchoredPosition = pos; } public static …

【Unity】UnityEvent で RemoveAllListeners してから AddListener する拡張メソッド

ソースコード using System; using UnityEngine.Events; public static class UnityEventExt { public static void SetListener( this UnityEvent self, Action call ) { self.RemoveAllListeners(); self.AddListener( () => call() ); } public static voi…

【Unity】UnityEvent の AddListener で System.Action を渡せるようにする拡張メソッド

ソースコード using System; using UnityEngine.Events; public static class UnityEventExt { public static void AddListener( this UnityEvent self, Action call ) { self.AddListener( () => call() ); } } 使用例 Action call = () => {}; button.onCl…

【Unity】DOTween で async / await を使用する

ソースコード 使用例 using DG.Tweening; using UnityEngine; public class Example : MonoBehaviour { private async void Start() { var t = transform; await t.DOMove( Random.onUnitSphere, 1 ); // 移動 await t.DORotate( Random.rotation.eulerAngle…

【Unity】便利な拡張メソッドが使用できる「UrFairy」紹介

はじめに 「UrFairy」を Unity プロジェクトに導入することで 便利な拡張メソッドが使用できるようになります 使い方 using UrFairy; ソースコードの先頭に上記の using を追加することで使用できるようになります 拡張メソッド一覧(引用) Vector3 transfo…

【Unity】便利な拡張メソッドをまとめた簡易ライブラリ「KoganeUnityLib」を GitHub に公開しました

はじめに 便利な拡張メソッドをまとめた簡易ライブラリ 「KoganeUnityLib」を GitHub に公開しました 目次 はじめに 目次 開発環境 導入方法 拡張メソッド ActionExt ArrayExt BoolExt ByteExt ColorExt ComponentExt DateTimeExt DictionaryExt EnumExt Flo…

【Unity】ButtonClickedEvent のリスナーの追加、削除、設定の記述を簡略化する拡張メソッド

ソースコード 関連記事

【Unity】uGUI の RawImage の UV の設定を楽にする拡張メソッド

ソースコード 関連記事

【Unity】uGUI の Graphic から ContentSizeFitter を参照する手間を省く拡張メソッド

ソースコード 関連記事

【Unity】uGUI の Graphic から RectTransform を参照する手間を省く拡張メソッド

ソースコード 関連記事

【Unity】Vector2 を四捨五入する拡張メソッド

ソースコード using UnityEngine; public static class Vector2Ext { public static Vector2 Round( this Vector2 self ) { return new Vector2 ( Mathf.Round( self.x ), Mathf.Round( self.y ) ); } } 使い方 var vec = new Vector2( 1.1f, 1.1f ); vec = …

【Unity】Vector3 を四捨五入する拡張メソッド

ソースコード using UnityEngine; public static class Vector3Ext { public static Vector3 Round( this Vector3 self ) { return new Vector3 ( Mathf.Round( self.x ), Mathf.Round( self.y ), Mathf.Round( self.z ) ); } } 使い方 var vec = new Vector…

【Unity】SpriteRenderer の透明度を設定できる拡張メソッド

ソースコード using UnityEngine; public static class SpriteRendererExt { public static void SetAlpha( this SpriteRenderer self, float alpha ) { var color = self.color; color.a = alpha; self.color = color; } } 使用例 var renderer = GetCompon…

【Unity】uGUI の Image や Text の透明度を設定できる拡張メソッド

ソースコード using UnityEngine.UI; public static class GraphicExt { public static void SetAlpha( this Graphic self, float alpha ) { var color = self.color; color.a = alpha; self.color = color; } } 使用例 var image = GetComponent<Image>(); image.S</image>…

【Unity】カメラの cullingMask を設定できる拡張メソッド「CameraExtensions.cs」紹介

ソースコード 使用例 // 指定したレイヤーを表示 camera.LayerCullingShow( "UI" ); // 指定したレイヤーを非表示 camera.LayerCullingHide( "UI" ); // 指定したレイヤーの表示/非表示を反転 camera.LayerCullingToggle( "UI" ); // 指定したレイヤーを表示…

【Unity】GetComponentsInChildren で引数の型情報を文字列で渡せるようにする拡張メソッド

ソースコード using UnityEngine; public static class GameObjectExt { public static Component[] GetComponentsInChildren( this GameObject self, string type, bool includeInactive ) { return self .GetComponentsInChildren<Transform>( includeInactive ) .Sel</transform>…

【Unity】GetComponentInChildren で引数の型情報を文字列で渡せるようにする拡張メソッド

ソースコード using UnityEngine; public static class GameObjectExt { public static Component GetComponentInChildren( this GameObject self, string type, bool includeInactive ) { var com = self.GetComponent( type ); if ( com != null ) return …

【Unity】List からランダムに値を取得して、その値を List から削除する拡張メソッド

ソースコード using System.Collections.Generic; using UnityEngine; public static class ListExt { public static T PopRandomElement<T>( this List<T> self ) { var item = self[ Random.Range( 0, self.Count ) ]; self.Remove( item ); return item; } } 使</t></t>…

【Unity】マテリアルの拡張メソッド「ShaderRenderState.cs」紹介

ソースコード 使用例 var mat = GetComponent<MeshRenderer>().material; mat.SetCull( ShaderRenderState.Cull.Back ); mat.SetZWrite( ShaderRenderState.ZWrite.Off ); mat.SetZTest( ShaderRenderState.ZTest.Greater ); 参考ツイート #unitytipsCustomize shaders ren</meshrenderer>…

【Unity】便利な拡張機能のセット「Unity Extensions」紹介

はじめに 「Unity Extensions」は便利な拡張機能のセットです 使用準備 using Extensions; 拡張メソッドを使用するスクリプトに上記の using を追加します 拡張メソッド一覧 Component // コンポーネントをアタッチ someComponent.AddComponent<MyComponent>(); // コンポ</mycomponent>…

【Unity】【uGUI】RectTransform のピボットの設定を楽にする拡張メソッド

はじめに var t = self.GetComponent<RectTransform>(); var pivot= t.pivot; pivot= new Vector2( 0, 1 ); t.pivot= pivot; RectTransform のピボットを設定する記述が少し冗長に感じたので わかりやすくするための拡張メソッドを作成しました ソースコード using UnityEng</recttransform>…

【Unity】【uGUI】RawImage のテクスチャを変更した時にサイズも更新する拡張メソッド

はじめに var rawImage = GetComponent<RawImage>(); rawImage.texture = texture; rawImage.SetNativeSize(); スクリプトから RawImage のテクスチャを変更する時に 一緒に SetNativeSize 関数を呼び出すことが多かったので これらをまとめた拡張メソッドを作成しまし</rawimage>…

【Unity】【uGUI】Image のスプライトを変更した時にサイズを合わせる拡張メソッド

はじめに var image = GetComponent<Image>(); image.sprite = sprite; image.SetNativeSize(); スクリプトから Image のスプライトを変更する時に 一緒に SetNativeSize 関数を呼び出すことが多かったので これらをまとめた拡張メソッドを作成しました ソースコー</image>…

【Unity】【uGUI】Text の文字列の設定を楽にする拡張メソッド

はじめに var text = GetComponent<Text>(); int score = 25; float time = 0.5f: text.text = score.ToString(); text.text = time .ToString(); スコアやタイムなどの数値を Text で表示する場合、 ToString 関数を呼び出して text に設定する必要があり コーデ</text>…

【Unity】Input.GetKey や Input.GetKeyDown の記述を簡略化する拡張メソッド

ソースコード using UnityEngine; public static class KeyCodeExt { public static bool IsPressing( this KeyCode self ) { return Input.GetKey( self ); } public static bool IsPressed( this KeyCode self ) { return Input.GetKeyDown( self ); } } …

【Unity】【uGUI】RectTransform の幅と高さの取得/設定を楽にする拡張メソッド

はじめに var t = self.GetComponent<RectTransform>(); // 取得 var width = t.sizeDelta.x; var height = t.sizeDelta.y; // 設定 var sizeDelta = t.sizeDelta; sizeDelta = new Vector2( 128, 64 ); t.sizeDelta = sizeDelta; RectTransform の幅と高さと取得、設定する</recttransform>…

【Unity】【uGUI】SpriteAtlas に含まれているすべての Sprite を返す拡張メソッド

はじめに var sprites = new Sprite[ spriteAtlas.spriteCount ]; spriteAtlas.GetSprites( sprites ); SpriteAtlas に含まれているすべての Sprite を取得する場合、 上記のような処理を記述すれば実現できますが 毎回配列を定義するのが大変だったので す…

【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】【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…