読者です 読者をやめる 読者になる 読者になる

コガネブログ

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

Unity5.3

【Unity】「Error building Player: IOException: Failed to Copy File / Directory from 'Temp/StagingArea/Data' to 'Temp/StagingArea/Trampoline/Data'.」

Error building Player: IOException: Failed to Copy File / Directory from 'Temp/StagingArea/Data' to 'Temp/StagingArea/Trampoline/Data'. JenkinsでUnityのビルド実行時に発生したエラー Jenkins用のMacの容量が不足していたことが原因

【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】サンプルや完成プロジェクト、ツールがダウンロードできるページ

https://unity3d.com/jp/learn/resources/downloads

【Unity】ゲームオブジェクトにコメントを付与することができるアセット「GameObject Comments」

概要 「GameObject Comments」を使用すると ゲームオブジェクトにコメントを付与することができます

【Unity】Incoming WebHooksを使用してSlackにメッセージを送信するクラス

このクラスはUnity5.3以上で使用することができます 使用例 1 var url = "【Webhook URL】"; var payload = new Payload { text = "ここにテキストを入力します", }; var routine = IncomingWebhooks.SendMessage( url, payload ); StartCoroutine( routine …

【Unity】UnityでC#5.0と6.0の機能を使用できるようにする

https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration 上記のBitbucketで公開されている「Unity C# 5.0 and 6.0 Integration」を Unityプロジェクトに追加することで、 UnityでC#5.0と6.0の機能が使用できるようになります 導入手順 下記のペー…

【Unity】並列でタスクを管理するシリアライズ可能な独自クラス

関連記事

【Unity】直列でタスクを管理するシリアライズ可能な独自クラス

関連記事

【Unity】「第38回Unity勉強会 in 代々木」でVisual Studioの拡張機能について発表させていただきました

「第38回Unity勉強会 in 代々木」で Visual Studioの拡張機能について発表させていただきました 発表資料をGoogleスライドに公開したので共有します 関連記事

【Unity】DictionaryでIEqualityComparerを使用した場合と使用しなかった場合のどちらが高速か検証しました

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、Dictionaryのキーに列挙型を使用した場合、 ボックス化が発生してしまい、メモリを余分に消費してしまうとのことだったので ボックス化を回避するためにIEq…

【Unity】シーンのビルドインデックスを定数で管理するクラスを生成する拡張機能

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、MaterialやAnimator、Shaderでパラメータを設定する場合、 プロパティ名でアクセスすると、内部でint型のハッシュ値への変換が行われてしまい、 少しだけ処…

【Unity】AudioClipのモノラル設定をオンにする方法

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、AudioClipはモノラル設定を有効にした方が良いと聴きました UnityでAudioClipをモノラル設定にする場合は AudioClipのImport Settingsで「Force To Mono」…

【Unity】MaterialのSetXXXX関数でpropertyNameを渡す方法とnameIDを渡す方法のどちらが高速か検証しました

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、MaterialやShaderのSetXXXX関数を使用する場合、 propertyNameを渡すよりも、nameIDを渡す方が高速と聞いたので MaterialのSetColor関数で速度を調査しまし…

【Unity】AudioClipのインポート時にiOSとAndroidで設定を分ける

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、AudioClipの圧縮形式は iOSでは「MP3」、Androidでは「Vorbis」がオススメとのことだったので AssetPostprocessorで指定する方法を調べてみました スクリプ…

【Unity】スクリプトがコンパイルされた時に呼び出されるコールバック関数を指定できる「DidReloadScripts属性」

using UnityEditor.Callbacks; using UnityEngine; public class Example { [DidReloadScripts] private static void Log() { Debug.Log( "コンパイルされました" ); } } using UnityEditor.Callbacks; using UnityEngine; public class Example { [DidReloa…

【Unity】Dictionaryのキーに列挙型を使用した時のボックス化によるメモリ消費を回避する

Unite 2016の「モバイル端末向けのUnityアプリケーションの最適化実践テクニック」 の講演において、Dictionaryのキーに列挙型を使用した場合、 ボックス化が発生してしまい、メモリを余分に消費してしまうとのことでした ボックス化が発生してしまう例 publ…

【Unity】.unitypackageからインポートしたアセットを削除する「Package Uninstaller」

使用方法 「Asset Store」から「Package Uninstaller」をUnityプロジェクトにインポートする Unityのメニューの「Assets>Uninstall Package...」を選択する 削除したいアセットを含むパッケージを選択する(例:Unity-chan Model) 確認ウィンドウが表示され…

【Unity】Unity 5.3.4 新機能「UNITY_5_3_OR_NEWER」

Unity 5.3.4 から「UNITY_5_3_OR_NEWER」が追加されました このシンボルを使用することで Unity 5.3 以上でのみ実行する処理を記述できます #if UNITY_5_3_OR_NEWER ... #endif 参考サイト様

【Unity】UnityEngine.UnityException: Texture 'XXXX' is not readable, the texture memory can not be accessed from scripts

UnityEngine.UnityException: Texture 'XXXX' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings. 読み書きを無効にしているテクスチャを編集しようとした場合 上…

【Unity】Script 'CharacterController' has the same name as built-in Unity component.

Script 'CharacterController' has the same name as built-in Unity component. AddComponent and GetComponent will not work with this script. 「CharacterController.cs」というスクリプトを作成すると 上記の警告が出力されます これはUnityが標準で「…

【おすすめスライド】「みんな大好き Boo.Lang を SATSUGAI する方法」

【Unity】一度読み込んだリソースをキャッシュする場合としない場合で読み込み速度にどれくらい差が出るか検証しました

Resources.Loadでリソースを読み込む際に 一度読み込んだリソースをキャッシュするかしないかで どれくらい速度に差が出るか気になったので検証しました 検証環境 Unity:5.3.1f1 OS:Android モデル番号:Nexus 7 Androidバージョン:5.0.1 検証に使用する…

【Unity】ルートに存在するゲームオブジェクトの配列を返す関数

using System.Linq; using UnityEngine; public static class GameObjectUtils { /// <summary> /// ルートに存在するゲームオブジェクトの配列を返します /// </summary> public static GameObject[] GetRootList() { return GameObject .FindObjectsOfType<GameObject>() .Where( c => c.t</gameobject>…

【Unity】JsonUtility でログ出力の効率化

public class Character { public int Id; public string Name; public int[] SkillIdList; } 例えばこのクラスのインスタンスが存在して、 Debug.Log で各パラメータの情報を出力する場合 Debug.Log( chara.Id ); Debug.Log( chara.Name ); foreach ( var n…

【Unity】Unity 5.3 新機能「ISerializationCallbackReceiver」

Unity 5.3 から「UnityEngine.ISerializationCallbackReceiver」が追加されました このインターフェイスを実装することで JsonUtilityでシリアライズした時やデシリアライズした時に呼び出される コールバック関数を実装することができます public class Cha…

【Unity】Unity 5.3 新機能「ColorUtility」

Unity 5.3 から「UnityEngine.ColorUtility」が追加されました Color型のインスタンスをカラーコードの文字列に変換したり カラーコードの文字列をColor型のインスタンスに変換したりできます ToHtmlStringRGB Debug.Log( ColorUtility.ToHtmlStringRGB( Col…

【Unity】Unity 5.3 新機能「DelayedAttribute」

Unity 5.3 から「UnityEngine.DelayedAttribute」が追加されました using UnityEngine; public class ExampleClass : MonoBehaviour { public int value; void Update() { Debug.Log( value ); } } 例えば上記のようなクラスをオブジェクトにアタッチして エ…

【Unity】Unity 5.3 新機能「WaitUntil」

Unity 5.3 から「UnityEngine.WaitUntil」が追加されました 条件を満たさない間コルーチンの実行を中断できます using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { int frame; IEnumerator Start() { yield return…

【Unity】Unity 5.3 新機能「WaitWhile」

Unity 5.3 から「UnityEngine.WaitWhile」が追加されました 条件を満たす間コルーチンの実行を中断できます using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { int frame; IEnumerator Start() { yield return new…

【Unity】CSVとScriptableObjectどちらの形式でマスターデータを管理したほうが読み込み速度が高速になるか検証しました

現在開発中のゲームでマスターデータをCSVで管理しているのですが、 マスターデータをCSVで管理する方法と ScriptableObjectで管理する方法のどちらがより高速に データを読み込むことができるのかが気になったので調査してみました 検証環境 Unity:5.3.1f1…

【Unity】Unity 5.3 新機能「Preserve」

Unity 5.3 から「UnityEngine.Scripting.Preserve」が追加されました Unityはビルド開始時にプロジェクト内の未使用のコードを削除しますが 例えばリフレクションを使用して呼び出している関数が存在する場合 その関数も削除されてしまう可能性があります Pr…

【Unity】Unity 5.3 新機能「SceneAsset」

Unity 5.3 から「UnityEditor.SceneAsset」が追加されました このクラスを使用してエディタ拡張を行うことで シーンファイルのInspectorを拡張したり EditorGUILayout.ObjectFieldと併用することで Inspectorでシーンファイルをドラッグ&ドロップできるよう…

【Unity】Unity 5.3 新機能「ILogHandler」

Unity 5.3 から「UnityEngine.ILogHandler」が追加されました ILogHandlerを実装したクラスをLoggerクラスに設定することで ログ出力時の挙動を変えることができます public class MyLogHandler : ILogHandler { public void LogException( Exception except…

【Unity】Unity 5.3 新機能「Logger」

Unity 5.3 から「UnityEngine.Logger」が追加されました Debugクラス同様にログ出力が可能なクラスですが Debugクラスと比べると下記のような違いがあります ログにタグを付与することができる ログにフィルターをかけることができる ログ出力の機能のON/OFF…

【Unity】どんな型でも簡単に保存と読み込みができるPlayerPrefsの関数を定義する

Unity 5.3 から追加された「UnityEngine.JsonUtility」と 「UnityEngine.PlayerPrefs」を組み合わせることで どんな型でも簡単に保存と読み込みができる PlayerPrefsの関数を定義することができます using UnityEngine; public static class PlayerPrefsUtil…

【Unity】string型をColor型に変換する関数を管理するクラス

Unity 5.3 から追加された「UnityEngine.ColorUtility」を使用して string型をColor型に変換する関数を管理するクラスを作成しました using UnityEngine; public static class MyColorUtility { /// <summary> /// 指定された文字列を Color 型に変換できる場合 true </summary>…

【Unity】Unity 5.3 の Inspector で表示できる組み込み型の一覧

using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public bool _bool ; public byte _byte ; public sbyte _sbyte ; public char _char ; public decimal _decimal; // × public double _double ; public float _…

【Unity】Time.timescale に依存しない WaitForSeconds

WaitForSeconds は Time.timescale に依存するため Time.timescale に 0 が代入されていると WaitForSeconds が完了することはありません もしも Time.timescale に依存しないようにしたい場合は Unity 5.3 から追加された 「CustomYieldInstruction」を使用…

【Unity】カラーコードを入力して色を設定できるエディタ拡張

ColorHtmlPropertyAttribute.csをプロジェクトに追加して、 ColorHtmlPropertyDrawer.csをプロジェクトのEditorフォルダに追加して、 下記のようなスクリプトを記述することで、 Inspectorでカラーコードを入力して色を設定できるようになります using Unity…

【おすすめスライド】「Unity5.3の機能まとめ」

Unity5.3の機能まとめ from Keigo Ando