コガネブログ

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

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

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

はじめに using UnityEngine; public class MyBehaviourScript : MonoBehaviour { private void Start() { // エラー transform.position.x = 0; // OK var pos = transform.position; pos.x = 0; transform.position = pos; // OK transform.position = new…

【C#】リフレクションを使用してToString関数を手軽に実装する

概要 // キャラクター public class Character { public string Name; // 名前 public int Level; // レベル } 上記のようなキャラクターの情報を管理するクラスがあったとして このクラスのインスタンスの情報をログに出力したい場合に下記のような構文を書…

【Unity】レイヤー名を定数で管理するクラスを生成する拡張機能

概要 // ゲームオブジェクトのレイヤーを変更します gameObject.layer = 8; ゲームオブジェクトのレイヤーを変更してどのカメラに写すかを設定する場合 レイヤーの番号を指定しますが、間違えやすいし何のレイヤーなのかわかりづらいので シーン名やタグ名と…

【Unity】タグ名を定数で管理するクラスを生成する拡張機能

概要 // ゲームオブジェクトがキャラクターかどうか if (gameObject.CompareTag("Character")) { // ... } ゲームオブジェクトのタグを判定する場合も文字列指定でタイプセーフではないので シーン名と同様にタグ名を定数で管理するクラスを自動生成する機能…

【Unity】シーン名を定数で管理するクラスを生成する拡張機能

概要 // タイトル画面に遷移します Application.LoadLevel("Title"); Unityでは他のシーンに遷移する時にシーンファイルの名前を指定して遷移しますが このままだとシーンファイルが削除されたりリネームされてもエラーにならず ゲーム実行中に上記のような…

【Unity】Unity エディタでゲーム実行中にエラーや例外が発生したら一時停止したい

概要 Unity メニューの「Window>Console」を選択して 表示された Console ウィンドウの「Error Pause」をオンにします これで、Unity エディタでゲーム再生中に エラーや例外が発生した場合にゲームを一時停止させることができます

【C#】列挙型の要素の数を取得する

C#

概要 var result = Enum.GetValues(typeof(JobType)).Length; 列挙型の要素の数を取得したい場合は上記の構文で取得できます 関連記事

【C#】列挙型の乱数を取得する

C#

概要 var random = new Random(); var result = Enum.GetValues(typeof(JobType)) .Cast<JobType>() .OrderBy(c => random.Next()) .FirstOrDefault(); ゲーム開発中に適当に乱数を使用して動作確認を行いたい時に使用しています http://stackoverflow.com/questions/</jobtype>…

【Unity】Unityエディタのフォーカスが外れてもゲームを実行し続ける

Unityエディタのメニューから「File>Build Settings...」を選択する Build Settingsウィンドウの「Player Settings...」を選択する InspectorビューのPer-Platform Settings項目で「Web Player」または「PC, Mac & Linux Standalone」のタブを選択する Resol…

【Unity】「Async design with Unity3D」

Async design with Unity3D from Kouji Hosoda C#のTaskクラスは.NET Framework 4.0以降でしか使えないので Unityで非同期操作を実現した場合は自分で実装する必要があるようです UnityのStartCoroutineでも似たようなことは実現可能ですが コルーチンはあく…

【Unity】PropertyDrawer

http://qiita.com/kyusyukeigo/items/8be4cdef97496a68a39d

【Unity】ファイル名に全角文字が含まれたテクスチャがUnityプロジェクトに追加された時に警告ダイアログを表示

using UnityEditor; using System.IO; /// <summary> /// アセットをインポートする時の処理を記述します /// </summary> public class AssetPreprocessor : AssetPostprocessor { /// <summary> /// テクスチャをインポートする直前に呼び出されます /// </summary> private void OnPreprocessText…

【おすすめスライド】「ゲームサーバ開発現場の考え方」

関連記事

【C#】Dictionary型の変数定義が横に長くなるのが気になる

例えばアイコンの種類によってテクスチャ名を取得するなど int型や列挙型をキーにして値を取得したい時は下記のようにDictionaryを使っていました // アイコンの種類 public enum IconType { SOLDIER, // 王国兵士 SORCERER, // 魔法使い } // アイコンごと…

【C#】「C#の書き方」

関連記事

【Unity】「実行時のために最適なデータ構造を作成しよう」

UnityでXMLを読み込む部分を作ろうと考えていて 「Resources.LoadでTextAssetとして読み込んで変換すれば良いかな」 と思っていたのですが、上記のスライドでそれは良くないことだと書かれていてヘコみました .assetやScriptableObjectに関しては詳しくない…

【C#】デリゲートを使用したステートパターン

C#

private enum State { FADE_IN, IDLE, FADE_OUT, } private readonly StateMachine<State> stateMachine = new StateMachine<State>(); private void Start() { stateMachine.Add(State.FADE_IN, () => {}, () => {}, () => {}); stateMachine.Add(State.IDLE, () => {}, (</state></state>…

【Unity】開発者インタビューを見る

http://japan.unity3d.com/gallery/made-with-unity/voices/ 現在、Unityの公式サイトの「Gallery>Developer's Voice」から 株式会社Aiming様と株式会社スパイク・チュンソフト様の Unityにおけるゲーム開発のインタビュー記事を見ることができます 個人的に…

【C#】インデクサでインスタンスを配列のように扱う

C#

オブジェクト指向エクササイズの「ファーストクラスコレクション」にしたがって コレクションを定義するときは下記のようなクラスを作成するようにして、 コレクションの中からオブジェクトを取得したい場合は Get関数を通じて取得するようにしていたのです…

【C#】基底クラスの関数呼び出しを省略

C#

// シーンの基底クラス abstract class SceneBase { public virtual void Update() { // 共通処理 } } // タイトルシーン class TitleScene : SceneBase { public override void Update() { base.Update(); // ここがメンドくさい } } // メインメニューシー…