hiyorinのブログ

主にUnityに関してのメモを残していきます

Unity開発に関する50のTips 〜ベストプラクティス〜

devmag.org.za 新しい50 Tipsを見つけたので紹介 www.gamasutra.com

Haste

僕が愛用しているAssetの紹介です。 HasteとはAlfredなどのランチャーアプリのようなものです。 Cmd+KでHasteの検索窓が表示されます。 ファイル、オブジェクト検索からメニュー操作までできます。 ファイル、オブジェクト検索はProject,Hierarchyが対象です…

Shader Forge

ShaderForgeとはノードベースでShaderを作れるものになります。 期間限定で40%OFFだったので購入しました。 Shaderの勉強中だったので調度良かったです! Asset Store ShaderForgeはUnrialEngineのマテリアルエディタを参考に作られているそうなのでこちら…

Unity5.3からのシーン遷移

Application.LoadLevel→SceneManager.LoadScene("hoge", LoadSceneMode.Single); Application.LoadLevelAsync→SceneManager.LoadSceneAsync("hoge", LoadSceneNode.Single); ApplicationLoadLevelAdditive→SceneManager.LoadScene("hoge", LoadSceneMode.Add…

StateMachineBehaviourについて

StateMacineBehaviourとはUnity5から追加されたAnimatorのステート状態に合わせてコールバックを返してくれるものになります。 AnimatorControllerに貼り付けて使うものになります。 OnStateEnterがステートに入った時、OnStateExitがステートから出る時。 S…

Unityちゃん、揺れもの、Reflectionについて

Unityで揺れものを実現させたい場合Unityちゃんの SpringManager,SpringBone,SpringColliderを使うと簡単に実装できます。 ですが、パフォーマンス確認中に若干ボトルネックになっているところがあった。 Unityのプロファイラーで確認してみるとSpringManage…

直前のコミットをなかったことにする

Git

変更されたファイルを残す git reset --soft HEAD^ 変更されたファイルを残さない git reset --hard HEAD^

特定のファイルを特定のバージョンまで戻す

Git

git checkout ハッシュ値 ファイル名

uGUIが表示されなくなる dll reimport

"Asset '*********/UnityEngine.UI.dll' is in timestamps but is not known in assetdatabase..." Unityが固まったので強制終了させたらこんなエラーが。 よく見るとuGUIの部分が表示されていない。 解決するにはこのDLLを再インポートする。 Unity終了、DL…

エディタ拡張でprivate fieldにアクセスする

エディタ拡張をする際、いつもプライベートのフィールドやプロパティを変更したい場合に困ってしまう。 インナークラスからはプライベートのフィールドやプロパティにアクセス出来ることを利用して解決してみる。 拡張したいクラス内にUNITY_EDITORでくくっ…

Xamarin Studio ショートカット

よく使うXamarinのショートカット コマンド説明 ⌘ + d 定義元へ移動する ⌘ + . 検索する ⌘ + W タブを閉じる ⌘ + Shift + W タブをすべて閉じる Ctrl + ⌘ + ← 直前のコードへ戻る Ctrl + ⌘ + → 直後のコードへ戻る Shift + ⌘ + d ファイルに移動する Shift +…

オブジェクトの周りを回転させる Transform.RotateAround

指定したオブジェクトの周りを回転させたい時はTransform.RotateAroundを使います。 axisは回転軸になります。 このサンプルの場合はY軸を指定して反時計回りに回ります。 Vector3.downを指定すると反時計回りになります。 これをカメラにAddComponentすれば…

プレハブを削除したとこでMissingになってしまったインスタンスの解決

プレハブを削除するとHierarchy上で赤く表示され、InspectorにMissingと表示されてしまいます。 これを解決するにはインスタンスを選択しておき、GameObject/Break Prefab Instance これでプレハブとの参照がきれます。

LINQでループカウンタをとる

LINQの戻り値はイテレーターなのでリストの何番目なのかを取ることができない。 Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, Int32, TResult>) これを使用するとInt32にインデックスがはいる。 ソースとインデックスを匿名型にいれればループ内で使えます。</tsource,></tsource></tsource,>

エントリーポイント RuntimeInitializeOnLoadMethod

Unityでのエントリーポイント。 ゲーム起動時にRuntimeInitializeOnLoadMethodのついたメソッドが呼ばれます。 複数ある場合順番を制御することはできないようです。 ここでゲーム全体で使うSingletonなGameObjectを生成したり、ゲーム開始に一度だけしたい…

ゆっくりと指定の座標に向ける Quaternion.RotateTowards

指定の座標に向けたい時はTransform.LookAtを使います。 ですがこれでは一瞬で向いてしまいます。 ゆっくりとLookAtしたい場合はQuaternion.RotateTowardsを使います。 rotationSpeedはfromからtoに回転する速度です。 stepはどれだけ進めるかです。 ちなみ…

座標間の角度 Quaternion.LookRotation

座標Aから座標Bへの角度を求めたいときはQuaternion.LookRotationを使う。 座標間の角度 この場合、第一引数に(座標B - 座標A)を与えます。

Unity5.3 bate インストール

5.3からはインストールするプラットフォームを選べるようです。 AndroidとiOSを選びます。 iOSだけで2Gって… インストール終わってから気づいた… Proライセンスが必要なんですね…

特定の種類(拡張子)のファイルだけを設定したい

シーンファイルをインスペクタから設定したい状況になった。 調べてみたところシーンファイルはDefaultAssetクラスでした。 DefaultAssetをシリアライズしてインスペクタから設定してみたところシーンファイルだけを設定することができなかった。 なので、拡…

シーンを非同期で加算ロードする LoadLevelAdditiveAsync

ゲーム開発の基礎構築 まずはシーンを管理、SceneManagerからはじめます。 要件としましては 非同期にロードしたい 複数のシーンファイルでひとつのシーンを構成したい Hierarchyを綺麗に管理したい シーンをある程度キャッシュしたい シーンのライフサイク…

ReadOnlyなSerializeFileld

Inspectorに表示したいけど編集されたくない。 というこどでReadOnlyなSerializeFiledをつくります。 実現方法は自前のAttributeを用意します。 ReadOnlyAttribute ReadOnlyDrawer.csはEditorフォルダに置いてください。 どうやら配列のSizeはReadOnlyになら…

はじめまして

日々のゲーム開発の備忘録がてら技術ブログをはじめました。 主にUnity関連の記事を書くことになるとおもいます。 プロフィール HN:hiyorin 職業:プログラマー 分野:ゲーム系 環境:Unity、スマートフォン 好きな言語:C# 長く続けられるよう頑張ります