(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

Unity

Hierarchy内の順序をプログラムで変える【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はHierarchyでの順序を変える方法のご紹介です。利用するのは主にuGUIを使っている時ですね。 GetSiblingIndex

enumをkeyにしたDictionaryが遅いって本当ですか?【C#】【Unity】【高速化】

この記事でのバージョン Unity 5.4.0f3 はじめに c#のenumは遅いという話を耳にしたので、気になって調べてみた系の記事です! そもそものc#のenumは遅いという由来は以下の通り。 enumは糖衣構文です。実態はclass Enumです。 糖衣構文……?知らぬ存ぜぬ。と…

時間を計る便利クラス【Unity】【C#】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はUnity上で時間を簡単に計る方法のご紹介!ちなみに、iOSやAndroid、Unityエディタ上はもちろん、エディタが再生してない時でも使えます!ようは、エディタ拡張で作った機能の処理時間も計れるというこ…

Unityの仕様を無視して、画像をそのまま使おうという試み【Unity】

この記事はUnity 2 Advent Calendar 2016の19日目の記事です。 この記事でのバージョン Unity 5.4.1f1 はじめに Unityの躓き所(?)の一つに画像の設定があります Formatだけでも多数あるし、設定項目も多岐にわたります。しかも適切に設定しないと色が変にな…

クラスを丸ごと保存するデータ管理方法【Unity】

この記事はUnity Advent Calendar 2016の15日目の記事です。 この記事でのバージョン Unity 5.4.0f3 はじめに 今回はタイトル通り、クラスを丸ごと保存するデータの管理方法のご紹介です! ざっくり言うと、永続化したいデータを一つ一つ保存したりするのは…

enumを作成するエディタ拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 以前、定数を管理するクラスを作成するエディタ拡張という記事を書きました。 これはいわゆる定数クラスと呼ばれるクラスを生成するためのエディタ拡張です。 これ単体だとあまり意味はあり…

Unityがクリスマスプレゼントくれるってよ!【Unity】

はじめに くれるらしいです! なにやらサインアップするとクリスマスまで毎日Unity関連のアセットなんかのプレゼントが貰えるらしい。https://t.co/nDWedQwIVn #unity3d— h.omae (@pigeon6) 2016年11月30日 と言っても、全員プレゼントみたいな感じではなく…

ビットフラグを使いやすくするアレコレ【Unity】【C#】【エディタ拡張】【拡張メソッド】【属性】

エディタ拡張とは 拡張メソッドとは この記事でのバージョン Unity 5.4.0f3 はじめに タイトルの通り、今回はUnity&C#で開発を行う際にビットフラグを使いやすくするアレコレのご紹介です! ビットフラグ

スクリーンショットの撮影と撮影完了の検知【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はUnityを使ったゲーム上でのスクリーンショットの撮り方と、撮り終わった事を検知する方法のご紹介です! Application.CaptureScreenshot

アセットをリリースしたらパスの\が原因でバグった件【Unity】【Windows】【トラブルシューティング】

この記事でのバージョン Unity 5.4.0f3 はじめに 以前、アセットストアでAutoLocalizationというローカライズ用のアセットをリリースしたのですが、 その時にタイトルの通り、パスの\が原因でバグを発生させてしまいました。(バグは修正してアップデート済み)…

Unityから書き出すXcodeのプロジェクトを軽くする【Unity】【iOS】

この記事でのバージョン Unity 5.4.0f3 はじめに UnityからXcodeのプロジェクトを書き出すと結構な重さになりますよね。例えば空のUnityプロジェクトをビルドした場合でも646.5MBにもなります。 これの原因はlibiPhone-lib.aというファイルで、こいつが600MB…

通知メッセージを表示する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はUnityエディタ上で通知メッセージを表示する方法のご紹介!通知メッセージとは以下のような感じのやつです。 EditorWindow.ShowNotification

UnityでiOSの3D Touchを使う【Unity】【iOS】

この記事でのバージョン Unity 5.4.0f3 iOS 9.3.2 Unity Remote 5 2.0 はじめに 今回はタイトルの通り、UnityでiOSの3D Touchを使うための記事です。 なおUnityエディター上でも、Unity Remote 5を使い、3D Touch対応端末から操作すればテストすることができ…

Unity Asset Storeのアフィリエイトプログラム開始!【Unity】【アセット】

はじめに 2016年11月1日(太平洋標準時)より、Unity Asset Storeのアフィリエイトプログラムが開始されました!つまり、Unity Asset Storeのアセットを紹介してお金が貰えるようになったわけです。 せっかくなので、このアフィリエイトプログラムの概要につい…

親や子を簡単に作れる拡張メソッド【Unity】【拡張メソッド】

拡張メソッドとは この記事でのバージョン Unity 5.4.0f3 はじめに 今回は親や子を簡単に作れる拡張メソッドのご紹介!イメージは以下のような感じ。 SetParent

インスタンスから元のPrefabを取得する【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はインスタンスから元のPrefabを取得する方法のご紹介です! ちょっと分かりにくいかもしれませんが、ようはHierarchy上で右クリックをし、Select prefabを実行した時の動作をプログラムで行いたいという…

「1ビットローグ」リリース!【新作】【Unity】

この記事でのバージョン Unity 5.3.4f1 1ビットローグ Skipmoreさんとの初の合作、「1ビットローグ」をリリースしました! iOS1ビットローグ ダンジョン探索RPG!Kan Kikuchiゲーム無料Android

シーンを移動するとInputがリセットされる件【Unity】

この記事でのバージョン Unity 5.4.1f1, 5.5.0b6 はじめに 今回はUnityの入力を簡単に処理できるInputクラスの話です。 タイトルの通り、このInputはシーンを移動するとリセットされる場合があります。 例えば、以下のようにキーボードのAとSを押すとログが…

Inspectorにファイルをドラック&ドロップしてパスを設定する【Unity】【エディタ拡張】【属性】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はInspectorにファイルをドラック&ドロップしてパスを設定する方法のご紹介です!イメージとしては以下の通り。 PathAttribute

Collider2Dを実機で可視化してみた【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに デフォルトの状態だとSceneView上でしか可視化されていないCollider2Dですが、Gizmoを有効にすることでGameViewでも見えるようになります。 ただし、SceneViewにしろGameViewにしろ、可視化するためには確認…

ドット絵の箱庭系スローライフRPG、ピコンティア開発中!【新作】【Unity】【Steam】

フェアルーンやドランシアでお馴染みのSkipmore大先生との合作第二弾!ピコンティアを作り始めていました!記事にするのを完全に忘れていました!! ピコンティアは農作業あり、クラフトあり、戦闘ありのスローライフRPGです! つい先日、SteamのGreenLight…

Resources以外からアセットをロードする便利クラス【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 以前、Resources以外からアセットをロードする方法を紹介しました。 その時、AssetDatabaseを使えばResources以外からもアセットをロードできるが、Resources.LoadAllのようにディレクトリ…

OnLevelWasLoadedが非推奨になったからSceneManager.sceneLoadedで置き換えてみる【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに Unityを5.4.0f3アップデートしたところ、以下の通りWarningが出ました。 This message has been deprecated and will be removed in a later version of Unity. Add a delegate to SceneManager.sceneLoaded …

全てのシーンに存在し、かつ、一つしか存在してはいけないマネージャー的存在の実装方法【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに Unityでゲームを作っていると、全てのシーンに存在し、かつ、一つしかいないマネージャー的な存在が必要になりますよね。例えばBGMやSEなどの管理を行うAudioManagerなんてものとか。 一つしか存在…

PlayerPrefsをリセットするメニューを追加する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はタイトル通り、PlayerPrefsをリセットするメニューを追加するエディタ拡張の紹介です。 PlayerPrefsResetter

シーンを切り替えても引き継げて、簡単に書き換えられるデータ 【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに ゲーム画面でのスコアをリザルト画面で使いたい、といったようにシーンを切り替えてもデータを保持したい、でも別に保存したいわけじゃない、みたいなことはよくあると思います。 そういう時には、…

簡単にモーションをブレンドして使えるBlend Tree【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はUnityの便利システムの一つ、Blend Treeを使って簡単にモーションをブレンドしてみる感じの記事です。 イメージとしては以下のような感じ。なお、体が回転しているように見えますが、アニメー…

タッチした所が始点になるジョイスティック(バーチャルパッド)を実装【Unity】【uGUI】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 前回の記事で自家製ジョイスティックを紹介しました。 前回はジョイスティックの位置が固定されてるタイプでしたが、今回は始点が移動するタイプのご紹介!イメージは以下のような感じ。 なお、Stic…

ジョイスティック(バーチャルパッド)を実装【Unity】【uGUI】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はジョイスティック(バーチャルパッド)を実装してみようという記事です。 イメージは以下のような感じ。 ちなみにStandardAssetsにあるやつではなくオリジナルのものなのであしからず。Standard…

変数の初期値を変更しても反映されない時の対処法【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はタイトル通り、変数の初期値を変更しても反映されない時の対処法です。個人的にはUnityで始めたばかりの頃にハマりやすい所の一つだと思っとります。 原因 ではさっそく本題です。タイトルの…

ヘルプボタン(?)のURLを変える【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに inspectorに表示される各オブジェクトには本のようなボタンが表示されています。 このボタンは押すと対象に応じたヘルプをブラウザで開いてくれるというものです。 今回はこのURLを変える方法のご紹…

簡単ローカライズアセット「AutoLocalization」をリリース!【Unity】【新作】【アセット】

この記事でのバージョン Unity 5.4.0f3 はじめに いつもお世話になっているUnity Asset Storeに自分のアセットを初めてリリースしました!その名も「AutoLocalization」です! 名前の通り、ローカライズを行うためのアセットです。以下の動画を見てもらうと…

選択したオブジェクトに対する日本語のドキュメントを表示するためのエディターウィンドウ【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに UnityにはHelpというクラスがあります。 Unity ドキュメントにアクセスするためのヘルパークラスです このHelpクラスにあるShowHelpForObjectを使うと対象のヘルプページを開ける…

Inspectorにメソッドを実行するボタンを追加する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 特定のメソッドをInspectorから実行できるようにしておくと便利な場合は多々あると思いますが、そんな時に一番楽なのはContextMenuだと思います。 //Inspectorの歯車アイコンにMet…

パーティクルの大きさをScaleで調整する【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はパーティクルの大きさをScaleで調整する方法のご紹介。 なお、Unity5.3から実装された機能です。 Scaling Mode

新作「1ビットローグ」予約開始【Unity】【新作】【プロモーション】

この記事でのバージョン Unity 5.3.4f1 1ビットローグ 新作「1ビットローグ」(Unity製)の予約を開始しました! iOS Android なんと今回はフェアルーンやドランシアでお馴染みのskipmore大先生との合作です! "1-Bit Rogue" Coming soon!! #pixelart #gamedev…

長押しすると連続でメソッドを実行するボタン【Unity】【uGUI】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はタイトル通り、長押しすると連続でメソッドを実行するボタンの記事です。例えばLvを上げるボタンなんかで使えます。 EventTrigger

ボタンを押した瞬間にメソッド実行【Unity】【uGUI】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに uGUIでボタンを作成すると、デフォルトであるイベントはOnClickだけでそのままではクリックした時(スマホだとタップして指を離した時)にしかメソッドが実行できません。 場合によっては押した瞬間に…

AnimationCurveをInspectorで設定し、スクリプトから使う【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回は表題の通り、AnimationCurveをInspectorで設定し、スクリプトから使う方法のご紹介です! AnimationCurve

プレハブの解除【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 一度プレハブにした後、プレハブを削除してしまうと、Hierarchy上に残ったオブジェクトは色が変わったり、Missingが表示されたりと、見苦しい感じになってしまいます。 今回はそんな時に使えるプレ…

No such file or directory libiPhone-lib.a【Unity】【UnityCloudBuild】【トラブルシューティング】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はUCB(UnityCloudBuild)でビルドした時に No such file or directory: '/BUILD_PATH/○○○○/△△△△/Libraries/libiPhone-lib.a' と表示される場合の対処法です。 ちなみに、以下とは関係ありません…

ScriptableObjectの参照をちょっと楽にしてみる【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに まずはじめに、ScriptableObjectとは以下のようなもので、変化しないデータを利用する時に活躍するものです。 データを格納するオブジェクトです。もう少し言えば、Unityがデータをシリアライズ・デ…

エディタを実行していない時にOnValidateでDestory【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 以下のように、エディタを実行していない時にOnValidateでDestoryしようとするとエラーが出ます。 private void OnValidate (){ Destroy (gameObject); } Destroy may not be call…

AssetImporterをAssetPostprocessor以外で使う【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal AssetImporter さっそくですが、AssetImporterをAssetPostprocessor以外で使う場合はAssetImporter.GetAtPathを使ってパスからAssetImporterを取得します。 using UnityEditor; //Assets直…

Resources以外からアセットをロードする【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はResourcesディレクトリ以外から何かしらのアセットをロードする時の方法です。なお、エディタ上でしか機能しないのであしからず。つまり、エディタ拡張の時用ですな。 Asset…

現在のビルドターゲットに合わせてBundle IDを自動更新する【Unity】【エディタ拡張】

エディタ拡張とは デリゲート、イベントとは この記事でのバージョン Unity 5.3.4f1 Personal はじめに UnityはPlay settingsからBundle ID(Bundle Identifier)を設定できますが、各ビルドターゲット(プラットフォーム)ごとに設定はできません。 つまりBundl…

UnityCloudBuildでの身に覚えのないエラーを解決するかもしれない方法【Unity】【UnityCloudBuild】【トラブルシューティング】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに UCB(UnityCloudBuild)便利ですよね!でもたまに身に覚えのないエラーが出て、困ったりしますよね!今回はそんな時に使えるかもしれない方法のご紹介です。 クリーン

ボタンなどを押さなかった時のタッチイベントを取得する【Unity】【uGUI】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに ボタンなどを押さなかった時のタッチイベントを処理したいって場合ありますよね。 例えば、画面をタップした時にシーンを移動したいけど、ボタンを押した時は違う処理をしてシーンの移動はしたくな…

NullReferenceException (UnityEngine.UI.Selectable.set_interactable)【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに 今回はNullReferenceException: Object reference not set to an instance of an objectUnityEngine.UI.Selectable.set_interactable と表示される場合の対処法です。

モバイルの時だけ有効になるDefine、UNITY_MOBILEを宣言してみる【Unity】

この記事でのバージョン Unity 5.3.4f1 Personal はじめに Unityでは各プラットフォーム毎にコンパイルするコードを変えたい場合、UNITY_EDITORやUNITY_ANDROIDなどのDefineを使って切り替えを行います。 #if UNITY_IOS //対象プラットフォームがiOSの時だけ…