コガネブログ

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

2014-03-01から1ヶ月間の記事一覧

【Unity】string.IsNullOrWhiteSpaceを使用できるようにする

概要 string.IsNullOrWhiteSpace(value) 文字列がnullもしくは空文字列もしくは空白文字だけで構成されているかどうかを確認する場合は string.IsNullOrWhiteSpaceを使えばいいのですが この関数は.NET Framework 4以降でのみ使用できる機能なので .NET Fram…

【Unity】Instantiate関数を綺麗に記述するためのラッパークラス

概要 var character1 = Instantiate(prefab) as GameObject; var character2 = Instantiate(prefab, position, Quaternion.identity) as GameObject; Instantiate関数でプレハブからゲームオブジェクトを生成する時に 毎回生成したオブジェクトをGameObject…

【Unity】Inspectorで入力できる値を制限する「OnValidate関数」

例えばキャラクターのレベルをInspectorで設定できるようにするために 下記のようなスクリプトを作成したとすると public class Character : MonoBehaviour { public int Level; } レベルの上限が100だったとしてもそれ以上の値を設定できたり マイナスの値…

【Unity】Resources.Loadを綺麗に記述するためのラッパークラス

概要 // キャラクターのプレハブを読み込む var characterPrefab = Resources.Load( "Prefabs/Character", typeof(GameObject)) as GameObject; Resources.Loadをそのまま使用してリソースを読み込む場合 typeofを書かなければいけなかったり typeofとキャス…

【Unity】gameObjectプロパティを使わなくてもAddComponentを可能にする拡張メソッド

public static void InitGameController(GameController gameController) { gameController.gameObject.AddComponent<ScoreKeeper>(); gameController.gameObject.AddComponent<TimeKeeper>(); } 例えばMonoBehaviourを継承したGameControllerコンポーネントが存在して GameController</timekeeper></scorekeeper>…

【Unity】ゲームオブジェクトから安全にGetComponentする拡張メソッド

ソースコード using System; using UnityEngine; /// <summary> /// GameObject型の拡張メソッドを管理するクラス /// </summary> public static partial class GameObjectExtensions { /// <summary> /// コンポーネントを取得します /// コンポーネントが存在しなければ追加してから取</summary>…

【Unity】プロトタイプ作成用アセット「Prototype」

使いやすそうなので購入しようか悩み中…

【C#】Array.ForEachを拡張メソッドでスマートに書く

概要 Array.ForEach(items, c => Debug.Log(c)); 配列をArray.ForEach関数で処理すると少し書き方が冗長になるので items.ForEach(c => Debug.Log(c)); ListのForEachのように呼び出せるようにする拡張メソッドを作りました このソースをプロジェクトに追加…

【おすすめスライド】「週末プログラミングで作るカジュアルゲーム~シューティング編~」

関連記事

【おすすめスライド】「週末プログラミングで作るカジュアルゲーム~レーシング編~」

関連記事

【Unity】「知って得するUnity エディタ拡張編」スライド公開しました

知って得するUnity エディタ拡張編 from Shota Baba 昨日、会社の勉強会でUnityのエディタ拡張について紹介した時に 使用したスライドをSlideShareで公開しました PropertyDrawerでUnityエディタを拡張する AssetPostprocessorでアセットを監視する MenuItem…

【おすすめスライド】「サーバー未経験者がソーシャルゲームを通して知ったサーバーの事」

関連記事

【おすすめスライド】「サーバーのおしごと」

関連記事

【Unity】例外を投げる

上記のようなスクリプトを用意すると、 下記のような構文で例外を投げることができます using UnityEngine; public class MyBehaviourScript : MonoBehaviour { public int Level; private void Start() { // Exception: Exception of type 'System.Exceptio…

【Unity】シーン遷移演出用アセット「Easy Masking Transition」

Easy Masking Transition http://agesthreeandapp.com/unity/assets/easymaskingtransition/ http://u3d.as/content/ages-three-and-app/easy-masking-transition/4ED シーン遷移時の演出を簡単に実現できるアセットです デモ http://agesthreeandapp.com/un…

【Unity】Vector2型、Vector3型、Rect型、Bounds型の変数の値をInspectorで設定しやすくする「CompactAttribute」

using UnityEngine; public class MyBehaviourScript : MonoBehaviour { public Vector2 Vector2; public Vector3 Vector3; public Rect Rect; public Bounds Bounds; } 通常、Vector2型やVector3型の変数の値をInspectorで設定する場合、 上記のような表示…

【Unity】正規表現を使用してstring型の値を制限する「RegexAttribute」

「RegexAttribute.cs」をUnityプロジェクトに追加します Unityプロジェクトに「Editor」フォルダが存在しない場合は作成します 「RegexDrawer.cs」をUnityプロジェクトの「Editor」フォルダに追加します 下記のような構文で使用します using UnityEngine; pu…

【Unity】string型の値を複数行で入力する「MultilineAttribute」

ソースコード using UnityEngine; public class MyBehaviourScript : MonoBehaviour { [Multiline] public string Comment; //[Multiline(10)] public string Comment; } 表示

【Unity】値の入力範囲を制限する「RangeAttribute」

using UnityEngine; public class MyBehaviourScript : MonoBehaviour { [Range(0, 100)] public int Level; }

【Unity】Transform型の位置や回転角、サイズの設定を楽にする その2

はじめに using UnityEngine; public class MyBehaviourScript : MonoBehaviour { private void Start() { var character = new GameObject("Character"); character.transform.localPosition = new Vector3(1, 1, 1); } } new GameObject()やGameObject.Ins…