(:3[kanのメモ帳]

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

Unity

ビルド直前にシーンを自動で設定をしようとしてみた【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.6.1f1 はじめに 以前に自動でシーンを追加する方法を紹介したのですが、 これとUnity5.6から追加されたIPreprocessBuildを併用すれば、ビルド直前にシーンを自動で設定出来るのでは?と、そんな事を思い付…

SliceしたSpriteの取得を簡単にし、キャッシュもする便利クラス【Unity】

この記事でのバージョン Unity 5.6.1f1 はじめに UnityではSpriteEditorを使って一つの画像から複数のSpriteへSliceする事が可能です。 こうすることで、一枚一枚で使うよりSetPass Calls(描画命令回数?)が減り、処理が軽くなりますが、Sliceした画像を読み…

enumのToStringが遅いって本当ですか?【C#】【Unity】【拡張メソッド】【高速化】

拡張メソッドとは この記事でのバージョン Unity 5.6.1f1 はじめに enumのToStringは遅いという話を耳にしたので、気になって調べてみた系の記事です!ちなみに、以前にenumをkeyにしたDictionaryが遅いという話も記事にしてました。 そもそものenumのToStri…

オブジェクトの検索、選択、アクティブ切替を楽にする【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.6.1f1 はじめに 今回はオブジェクトの検索、選択、アクティブ切替を楽にするエディタ拡張のご紹介!イメージとしては以下のような感じで、 よく使うオブジェクト名を登録しておくと、それをいつでも検索&選…

アプリ内でのレビューをUnityで実装【Unity】【iOS】

この記事でのバージョン Unity 5.6.1f1 Xcode 8.3.2 iOS 10.3.1, 9.3.5, 8.0, 7.1.1 はじめに iOS10.3からアプリ内でレビューを付けられるようになりました。 しかも、この公式の機能以外で評価を促す事は禁止となるようです。 アプリ上で評価を促す際には、…

カテゴリ別、厳選記事一覧【Unity】【エディタ拡張】【C#】

はじめに このブログに投稿した記事の中から、人気があったモノや有益っぽい気がするモノを厳選し、カテゴリ別にまとめてみました!随時更新中! 2017.06.19更新以下の項目を追加 - enumのToStringが遅いって本当ですか? 目次 はじめに 目次 Unityの機能 Un…

カーソルの設定【Unity】

この記事でのバージョン Unity 5.6.1f1 はじめに 今回はカーソルの設定方法についての記事です! なお、カーソルの設定はUnity4系ではScreen.lockCursorなど、Screenというクラスを使っていましたが、 Unity5系ではCursorというクラスを使うようになりました…

isShowingSplashScreenが非推奨になったので、SplashScreen.isFinishedを使ってみた【Unity】

この記事でのバージョン Unity 5.6.1f1 はじめに 気付いたら、スプラッシュが表示されているか確認する際に使っていたisShowingSplashScreenが 非推奨になっていました。 warning CS0618: `UnityEngine.Application.isShowingSplashScreen' is obsolete: `Th…

特定のシーンでだけ破棄されないオブジェクトの実装【Unity】

この記事でのバージョン Unity 5.6.0f3 はじめに Unityではシーン遷移時にシーン上のGameObjectは全て破棄されてしまいます。なので、破棄したくない物にはDontDestroyOnLoadを実行して、永遠に破棄されないようにします。 DontDestroyOnLoad(gameObject); …

シーンの遷移とフェードを管理するクラス【Unity】【uGUI】

イベント、デリゲートとは この記事でのバージョン Unity 5.6.1f1 はじめに 今回はタイトル通り、シーンの遷移とフェードを管理するクラスのご紹介!なるべく分かり易いようにシンプルな作りにしてみました。イメージとしては以下のような感じ。 //シーンの…

Box Collider 2D に追加された Edge Radius なるもの【Unity】

この記事でのバージョン Unity 5.6.1f1 はじめに Unityを5.6.1f1にアップデートした所、見慣れぬ項目がある事に気付きました。その名もEdge Radius ! ちょっとビックリしたので記事にしてみました。 Edge Radius

エディタを実行していない時にSceneView上でクリックした座標を取得する【Unity】

この記事でのバージョン Unity 5.6.0f3 はじめに 今回はタイトル通り、エディタを実行していない時にSceneView上でクリックした座標を取得する方法のご紹介です!イメージは以下のような感じ。 GameViewでも同様の事は可能ですが、SceneViewは表示範囲を簡単…

Visual Studio for Mac が正式リリースされたのでUnityで使ってみた【Unity】【Mac】

この記事でのバージョン Unity 5.6.0f3 Visual Studio for Mac 7.0.0 はじめに Visual Studio for Mac が正式にリリースされたので、Unityで使ってみました!なお、無料で使う事ができます!無料版(Visual Studio Community)についての利用条件は以下の通り…

Timelineとは【Unity】【Timeline】

この記事でのバージョン Unity 2017.1.0b2 はじめに 先日、2017.1.0 (beta)のリリースノートにも書かれたりと、最近よく聞くTimelineなるもの。 【朗報】Unity Timeline氏、オレンジからグリーンになり無事2017.1のリリースノートに書かれる https://t.co/2q…

タグやレイヤーの区分け【Unity】

この記事でのバージョン Unity 5.6.0f3 はじめに 先日「"/" で区切ってタグを定義すると、自動的に区分けしてくれる」という情報を目撃しまして、 "/" で区切ってタグを定義すると、自動的に区分けしてくれる#UnityTips pic.twitter.com/Z99mK2m5eL— ゴコー …

読み込まれている全シーンの取得【Unity】

この記事でのバージョン Unity 5.5.2f1 はじめに Unity5.3からマルチシーンエディティングという複数のシーンを同時に扱う機能が追加されました。 今回はこの機能に関連して、現在読み込まれている全シーンの取得を行う方法のご紹介です。 sceneCountとGetSc…

Resourcesにあるファイルをビルド時にのみ移動する【Unity】

この記事でのバージョン Unity 5.6.0f3 はじめに UnityではResourcesに入っているファイルは基本的に全て、ビルドに含まれてしまいます。なので、ビルドしたくないファイルはResourcesに入れてはいけないのですが、場合によってはResourcesに入れたいけど、…

PC用のビルドした時に解像度が変わらない場合の対処法【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.5.2f1 はじめに UnityではPC用の解像度(起動時)は以下の場所から設定する事ができます。Build Setting -> PlayerSettings -> Defualt Screen Width & Height なお、DisplayResolutionDialogをDisableに設定すると起動時にユ…

Spriteの分割を透過部分も含めて自動で行う【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.5.2f1 はじめに UnityではSprite Editorを使う事で、Spriteの分割が自動で行えますが、透過されている部分は無視されてしまうため、全てを均等に分割するという事は出来ません。 なので今回は、透過部分も…

「神巫女 -カミコ-」発売開始!【新作】【Unity】【NintendoSwitch】

神巫女 -カミコ- 次の新作はピコンティアの予定でしたが、なんやかんやありまして、別の新作 「神巫女 -カミコ-」の発売が開始されました!プラットフォームはなんとNintendo Switch!Nintendo Switch!!ダウンロード専用で、お値段は500円です!

サブスクリプション新規購入すると今だけ人気アセット3つが無料!【Unity】

はじめに タイトル通り、今Unity PlusまたはProサブスクリプションを新規購入すると、3つの有料アセットが無料で付いてくるそうです! Accelerator Pack 対象アセット

画像のmetaファイルに関するTips【Unity】

この記事でのバージョン Unity 5.5.2f1 はじめに Unityではプロジェクト内で何らかのファイルを生成すると、一緒にmetaファイルが生成されます。 今回はそんなmetaファイル(主に画像)に関するTipsです。 違う画像の情報をコピー

SpriteModeがMultipleのTextureから、設定したSpriteの画素値だけを取得する【Unity】

この記事でのバージョン Unity 5.5.1f1 はじめに Unityでは、Textureの設定でRead/Writeを有効にすると、GetPixelsを使う事でTextureの画素値を取得する事が出来るようになります。 //テクスチャの全画素値を取得 Color[] pixels = texture.GetPixels(); し…

フォントのフィルターモードを変えてドットフォントをくっきり表示【Unity】【uGUI】

この記事でのバージョン Unity 5.5.1f1 はじめに Unityのテクスチャは、デフォルトでは滑らかに表示されるようにフィルターが設定されています。 ドット絵などフィルターが必要がない場合は以下のように設定からFilterModeをPointにして、補完しないようにし…

親オブジェクトが無効になっている時にactiveSelfを見るとtrueが返ってくるという話【Unity】

この記事でのバージョン Unity 5.5.1f1 はじめに 例えば親オブジェクト(Parent)は無効だけど、子オブジェクト(Child)は有効になっている場合、 オブジェクトの状態を確認するためにactiveSelfを見てしまうと、子オブジェクトはtrueが返ってきてしまいます。 …

エディタ実行中だけ開くウィンドウの実装【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.5.1f1 はじめに 今回はタイトル通り、エディタ実行中だけ開くウィンドウのご紹介!イメージは以下の通り。 再生ボタンを押した時に表示され、終了ボタンを押した時に非表示にされる感じです。 WindowWhenEd…

コンポーネントを重複してアタッチできないようにする 【Unity】【属性】

この記事でのバージョン Unity 5.5.1f1 はじめに このコンポーネントは一つのGameObjectに複数付いてたら困る!うっかり付けられないようにしたい!今回はそんな時に役立つ記事です。 DisallowMultipleComponent

独自のショートカットキー(ホットキー)を作成する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.5.1f1 はじめに エディタ拡張で便利な機能を作ったから、瞬時に呼び出せるようにしたい!機能にショートカットキーを設定したい!今回はそんな感じの記事です。 MenuItem

エディター上で選択しているオブジェクトを取得したり、任意のオブジェクトを選択したり【Unity】【エディタ拡張】

エディタ拡張とは デリゲートとは この記事でのバージョン Unity 5.5.1f1 はじめに 今回はエディターでの選択オブジェクトに関する諸々の話です。選択しているオブジェクトの情報を取得したい、任意のオブジェクトを選択したいそんな感じの時に役立つはずで…

SpriteRendererで9Slice【Unity】

この記事でのバージョン Unity 5.5.1f1 はじめに 今回はSpriteRendererで9Sliceをしてみようという記事です。以下はイメージで、左がそのままスケールしたもの、右が9Sliceしてスケールしたものです。 使用している画像は以下のものです。 なお、Unity5.6で…

OnDisableやOnDestroyをエディタを止めた時には実行しないようにする【Unity】

この記事でのバージョン Unity 5.5.0p1 はじめに MonoBehaviourには無効になったときに呼ばれるOnDisableと、 破棄される時に呼ばれるOnDestroyという関数があります。 なお、GameObjectを削除すると両方呼ばれます。イメージとしては以下のような感じ。 usi…

Hierarchyの変更を検知する【Unity】【エディタ拡張】

エディタ拡張とは デリゲートとは この記事でのバージョン Unity 5.5.0p1 はじめに 今回はHierarchyの変更を検知する方法のご紹介。なお、エディタ上だけの方法なのであしからず。 EditorApplication.hierarchyWindowChanged

timeScaleを無視してParticleSystemを再生させる【Unity】

この記事でのバージョン Unity 5.5.0p1 はじめに ParticleSystemはtimeScale変更するとそれに合わせて再生速度も変わるようになっています。 ただ、残念ながらtimeScaleを無視して一定速度で再生するような設定はないようです。 Simulate

Windows向けにビルドしたらなんか音が変だった件【Unity】【Windows】【トラブルシューティング】

この記事でのバージョン Unity 5.5.0p1 はじめに タイトル通り、Windows向けにビルドし、実行してみたら、なんか音がおかしかった時の話です。 DSPBufferSize さっそく原因ですが、AudioManagerの設定の問題でした。 なお、AudioManagerの設定はEdit->Projec…

Rigidbody2DがSleepして衝突しなくなる問題【Unity】

この記事でのバージョン Unity 5.5.0p1 はじめに Rigidbody2Dはデフォルトの状態だと、一定時間動かない場合はSleep状態となり、衝突を判定しなくなります。なお、Sleep状態となると以下のようにCollider2Dの色が薄くなります。 上記の例では二つのオブジェ…

File.WriteAllBytesで書き出したファイルがProjectに表示されない時の対処法【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.5.0p1 はじめに 以下のよう感じで、Assets以下にファイルを書き出した時、Finderで見ると存在するものの、Projectに表示されない場合があります。 File.WriteAllBytes("Assets/Data.txt", data); 今回はこれの対処法です。 A…

Texture2DからSpriteを生成する【Unity】

この記事でのバージョン Unity 5.5.0p1 はじめに 今回はタイトル通り、Texture2DからSpriteを生成する方法のご紹介です。 Sprite.Create

Window10でUnityをインストールしてコードを書くまでにぶつかった問題とその解決方法【Unity】【Windows】【トラブルシューティング】

この記事でのバージョン Unity 5.5.0b11 Windows 10 Home バージョン1607 目次 目次 はじめに Visual Studio インストール Visual Studioの修復 .net framework 3.5 有効化 コンポーネント ストアの修復 Unityインストール Unityのエラー解消 おわりに はじ…

エディタ拡張で進捗状況を表示する【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.4.0f3 はじめに 今回はエディタ拡張でなんらかの処理を行っている時に、進捗状況を表示する方法のご紹介です!イメージとしては以下のような感じです。 EditorUtility.DisplayProgressBar

MonoBehaviourを継承しないという選択肢【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに UnityではおなじみのMonoBehaviourですが、デフォルトで継承されているし、ドキュメントにも以下のようにあるので、Unityを始めた当初は絶対に継承しなきゃいけないイメージになりがちです。 MonoBehaviourは…

Prefabの状態を保ったままのオブジェクトをプログラムから作成する【Unity】

この記事でのバージョン Unity 5.4.0f3 はじめに 今回はPrefabの状態を保ったままのオブジェクトをプログラムから作成する方法のご紹介です!Prefabに接続された状態のインスタンスを作成するとも言えるかと思います。 言葉だとちょっと分かり難いですが、よ…

Transformを簡単にResetする【Unity】【拡張メソッド】

拡張メソッドとは この記事でのバージョン Unity 5.4.0f3 はじめに TransformはInspectorの歯車から、Resetを実行することで positionを(0,0,0) rotationを(0,0,0) scaleを(1,1,1) にリセットする事ができます。 これ自体はとても便利なのですが、transform.…

コンポーネントを追加した際に処理をしたい場合は、Resetを使うと良いって話【Unity】

この記事でのバージョン Unity 5.4.0f3 MonoBehaviour.Reset MonoBehaviourを継承したクラスをGameObjectにaddすると、特に何もせずともInspectorの歯車にResetというメニューが出現します。 そのままでは実行してもなにも起こりませんが、Resetというメソッ…

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日 と言っても、全員プレゼントみたいな感じではなく…