コガネブログ

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

2015-05-01から1ヶ月間の記事一覧

【Unity】EditorApplication.NewEmptySceneで空のシーンファイルを作成する

EditorApplication.NewEmptyScene(); EditorApplication.NewEmptySceneを使用することで オブジェクトが存在しない 空のシーンファイルを作成することができます

【Unity】EditorApplication.NewSceneで新しいシーンファイルを作成する

EditorApplication.NewScene(); EditorApplication.NewSceneを使用することで Main CameraとDirectional Lightが存在する 新しいシーンファイルを作成することができます

【Unity】「EditorApplication.currentScene」で現在開いているシーンの名前を取得する

概要 using UnityEditor; using UnityEngine; public static class ExampleClass { [MenuItem( "Tools/Example" )] private static void Example() { Debug.Log( EditorApplication.currentScene ); } }

【Unity】EditorUtility.SaveFilePanelで名前を付けて保存するダイアログを表示する

var path = EditorUtility.SaveFilePanel( "", "", "", "" ); if ( !string.IsNullOrEmpty( path ) ) { ... } EditorUtility.SaveFilePanelを使用することで 名前を付けて保存するダイアログを表示することが可能です 引数 変数名 説明 title ダイアログに表…

【Unity】「Behaviour.isActiveAndEnabled」 でコンポーネントの状態を確認する

using UnityEngine; public class B : MonoBehaviour { public A a; public void Update() { Debug.Log( a.isActiveAndEnabled ); } } Behaviour.isActiveAndEnabledプロパティは そのコンポーネントがアタッチされているゲームオブジェクトがアクティブで …

【Unity】「MonoBehaviour.OnLevelWasLoaded」新しいシーンが読み込まれた時に呼び出されるコールバック関数

using UnityEngine; public class ExampleClass : MonoBehaviour { private void OnLevelWasLoaded( int level ) { Debug.Log( level ); } }

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

概要 関連記事

【Unity】「AssetDatabase.GenerateUniqueAssetPath」で重複しないアセットのファイルパスを取得する

using UnityEditor; using UnityEngine; public static class ExampleClass { [MenuItem( "Tools/Example" )] private static void Example() { var path = "Assets/Prefabs/New Prefab.prefab"; Debug.Log( AssetDatabase.GenerateUniqueAssetPath( path ) …

【C#】引数にnullを渡してもエラーにならないContainsKeyの拡張メソッド

ソースコード using System.Collections.Generic; public static class DictionaryExtensions { public static bool ContainsKeyNullable<TKey, TValue>( this Dictionary<TKey, TValue> self, TKey key ) { if ( key == null ) { return false; } return self.ContainsKey( key ); } } </tkey,></tkey,>…

【C#】Dictionary に指定したキーが存在する場合は代入する方法

ソースコード using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1, "フシギダネ" }, { 2, "フシギソウ" }, { 3, "リザードン" }, }; // OK table[ 3 ] = "フシギバナ"; // NG</int,>…

【Unity】SerializedObjectを使用して指定されたオブジェクトのすべてのプロパティのパス名を抽出するエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加して 「Tools>SerializedObjectWindow」を選択すると次のウィンドウが表示されます ウィンドウの欄にオブジェクトをドラッグアンドドロップすると そのオブジェクトが持つシリアライズ…

【Unity】ScriptableObjectのアセットを作成するエディタ拡張

概要 関連記事

【Unity】ゲームオブジェクトやアセットを複製するエディタ拡張

概要 Unity では Ctrl + D でゲームオブジェクトやアセットを複製することが可能です もしも複製処理を自前で実装したい場合は 下記のようなスクリプトを記述することで実現できます ゲームオブジェクトやアセットを選択した状態で Unity エディタのメニュー…

【Unity】ScriptableObjectを継承したすべてのアセットのInspectorの表示をカスタマイズするエディタ拡張

概要 using UnityEngine; public sealed class PlayerSettings : ScriptableObject { public string Name; } using UnityEngine; public sealed class EnemySettings : ScriptableObject { public string Name; } 例えば ScriptableObject を継承したこのよ…

【Unity】名前付き引数とref、outキーワードを併用するとエラー

概要 public class ExampleClass { public ExampleClass() { var str = ""; // error CS1525: Unexpected symbol `ref' Example( str1 : ref str, str2 : out str ); } public void Example( ref string str1, out string str2 ) { str2 = ""; } } Unityでは…

【Unity】Projectビューを一行おきに色を変えて見やすくするエディタ拡張

概要 関連記事

【Unity】リフレクションを使用して指定されたクラスのすべてのメンバを抽出するエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加して 「Tools>Reflection Window」を選択すると次のウィンドウが表示されます ウィンドウのテキストボックスに名前空間を含むクラス名を入力すると そのクラスが持つすべてのメンバが…

【Unity】インポートされたFBXから自動でAnimationClipを取り出すエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加した状態で FBX を Unity プロジェクトに追加すると その FBX から AnimationClip を自動で取り出すことができます 既に Unity プロジェクトに追加されている FBX から AnimationClip …

【Unity】Projectビューでテクスチャを選択中にCtrl + Altキーでプレビューを表示するエディタ拡張

概要 Project ビューでテクスチャを選択している時に Ctrl + Altキーを押すとプレビューを表示できます 関連記事

【Unity】FBXからAnimationClipを取り出すエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加することで 例えばこのような FBX が Unity プロジェクトに存在する場合に 取り出したい AnimationClip を選択して右クリックし、 「Copy Animation Clip」を実行して FBX から Animat…

【Unity】Sceneビューのカメラをクォータービューに変更するエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの「Editor」フォルダに追加すると Scene ビューの左上に「Quarter」ボタンが表示されます この「Quarter」ボタンを押すことで Scene ビューのカメラをクォータービューに変更できます 作成中のシーンを素早く俯…

【Unity】OnGUIで表示するテキストの幅と高さをGUIStyleから取得する拡張メソッド

概要 using UnityEditor; using UnityEngine; public sealed class ExampleClass : EditorWindow { [MenuItem( "Tools/Example" )] private static void Example() { GetWindow<ExampleClass>(); } private void OnGUI() { var text = "ピカチュウ" ; var size = EditorSty</exampleclass>…

【Unity】Hierarchyを一行おきに色を変えて見やすくするエディタ拡張

概要 関連記事

【Unity】Hierarchyにゲームオブジェクトが持つコンポーネントの一覧を表示するエディタ拡張

概要 Hierarchy上でコンポーネントのアイコンをクリックすることで コンポーネントが有効かどうかを変更することができます 参考サイト様 関連記事

【Unity】Projectビューにアセットの拡張子を表示するエディタ拡張

概要 関連記事

【Unity】Animator のステート名を定数で管理するクラスを生成するエディタ拡張

概要 上記のスクリプトを Unity プロジェクトの Editor フォルダに追加すると、Unity エディタのメニューに 「Tools>Create>Animator State Name」が追加されます これを選択するとアニメーターのステート名を定数で管理する AnimatorStateName.cs が生成さ…

【Unity】Hierarchyにゲームオブジェクトのアイコンを表示するエディタ拡張

概要 関連記事

【Unity】無効なコンポーネントがアタッチされているかどうかをHierarchyに表示するエディタ拡張

概要 関連記事

【第5回DeNAゲーム開発勉強会】「パズル戦隊デナレンジャー:ゲーム制作を支えたツール達」メモ

制作を支えたツール達 (パズル戦隊デナレンジャー) from dena_study https://atnd.org/events/65071 https://itunes.apple.com/jp/app/pazuru-zhan-duidenarenja/id866017188?mt=8&uo=4&at=10l8JW&ct=hatenablog ツール クラッシュレポートとシューティング …

【第5回DeNAゲーム開発勉強会】「パズル戦隊デナレンジャー:DeNA の新しいネイティブ開発」メモ

DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー) from dena_study https://atnd.org/events/65071 https://itunes.apple.com/jp/app/pazuru-zhan-duidenarenja/id866017188?mt=8&uo=4&at=10l8JW&ct=hatenablog アジェンダ DeNAの新しい…