(:3[kanのメモ帳]

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

Unityの2D(Sprite Renderer)でLightを使う【Unity】

この記事でのバージョン Unity 2017.1.0f3 はじめに 今回は2D(Sprite Renderer)でLightを使う方法のご紹介です。イメージとしては、以下のような感じ。 なお、記事中の画像は以下のアセットを使っております。 使い方

Unityのライセンスが更新を忘れて、新規購入したらエッセンシャルパックを再度貰ったよという話【Unity】【トラブルシューティング】

はじめに 今回はUnityのライセンスが切れてしまったので、更新しようと悪戦苦闘した話です。結論から言うとタイトル通り、一度更新が切れると再開は出来ず、新規購入するしかありませんが、エッセンシャルパックを再度貰えます。 なお、2017年8月時点での話…

SpriteCreatorで仮のSpriteを作成する【Unity】

この記事でのバージョン Unity 2017.1.0f3 はじめに Unityはデフォルトの状態だと丸と四角ぐらいしかSpriteがありません。 これだとモック段階でもちょっと物足りないないので、Unityの機能の一つ、SpriteCreatorで仮のSpriteを作成してみようという記事です…

SpriteやImageで9Sliceを使う【Unity】【uGUI】

この記事でのバージョン Unity 2017.1.0f3 はじめに 今回はタイトル通り、SpriteやImageで9Sliceを使ってみようという記事です。ここで言う9Sliceとは画像を9分割し、分割した領域毎に拡大縮小を行う処理の事です。 なお、記事中の画像は以下のアセットを使…

SpriteやImageでMaskを使う【Unity】【uGUI】

この記事でのバージョン Unity 2017.1.0f3 はじめに 今回はタイトル通り、SpriteやImageでMaskを使ってみようという記事です。ここで言うMaskとは画像を任意の形に切り抜いて表示するような処理の事です。 なお、記事中の画像は以下のアセットを使っておりま…

Serializableなクラスをフィールドにしたら、nullなのにコンストラクタが実行される件【C#】【Unity】【トラブルシューティング】

この記事でのバージョン Unity 2017.1.0f3 はじめに 今回はタイトル通り、Serializableなクラスをフィールドにしたら、nullなのにコンストラクタが実行された話です。 コンストラクタが実行される

SpriteAtlasを使い易くする拡張【Unity】【エディタ拡張】【拡張メソッド】

エディタ拡張とは 拡張メソッドとは この記事でのバージョン Unity 2017.1.0f3 はじめに 前回はSpriteAtlasの使い方等について紹介すると同時に、GetSpriteで取得する際に文字列で指定する事や、全Spriteの取得が面倒という問題点をあげました。 なので、今…

Spriteをパックする新しい仕組み、SpriteAtlasを使ってみた【Unity】

この記事でのバージョン Unity 2017.1.0f3 はじめに Unity 2017から新たにSpriteAtlasなるものが追加されました。 今までもSpriteをパックする(一つの画像にする)機能としてSpritePackerがありましたが、ちょっと使ってみた感じ、SpriteAtlasの方がかなり良…

Lightが反映されない時の対処法【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.6.1f1 はじめに 今回はLightを設置したのに反映されない!という状況を解決するかもしれない方法のご紹介です Pixel Light Count

属性(Attribute)とは【C#】【Unity】【属性】

この記事でのバージョン Unity 5.6.1f1 はじめに 今回はタイトル通り、属性(Attribute)とはなんぞや?という感じの記事です。なお、基本的にUnity+C#での話になりますので、あしからず。 目次 はじめに 目次 属性とは 使い方 オリジナル属性の作り方 Inspect…

UnityでAssertを使う(Debug.Assert と Assertions.Assert)【Unity】

この記事でのバージョン Unity 5.6.1f1 はじめに 今回はタイトル通り、UnityでAssertを使ってみよう!という記事です。 //IsTrueは条件が真である事を確認する(偽であればエラーを出す) Assert.IsTrue(_notActiveGameObject.activeSelf, "_notActiveGameObje…

安心安全にUnitySendMessageを使う【Unity】【iOS】

この記事でのバージョン Unity 5.6.1f1 Xcode 8.3.2 はじめに UnityではiOSのネイティヴコードからC#(またはjs)を実行するためのメソッド、UnitySendMessageが用意されています。 Unity iOS は、“UnitySendMessage” を媒介に、限定的なネイティブからマネー…

神巫女のSPに関する工夫の話【ゲーム演出】【Unity】【NintendoSwitch】

はじめに 先日、Nintendo Switchでリリースし、2017年上半期ダウンロードランキングで4位にもなった神巫女 Nintendo Switch 2017年上半期 ダウンロードランキング|Nintendo に関するインタビューをUnityさんにしてもらったのですが、その際にSPの話題がでま…

エディタ拡張でオブジェクトを生成した場合にシーンを保存する方法【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 5.6.1f1 はじめに 例えば以下のようなコードで、オブジェクトを生成するエディタ拡張を作る事が出来ますが、 using UnityEngine; using UnityEditor; public class GameObjectCreator { [MenuItem("Test/Crea…

検索時にRequest errorというエラーがでる時の対処法【Unity】【トラブルシューティング】

この記事でのバージョン Unity 5.6.1f1 はじめに 今回は検索時にRequest errorというエラーができる時の対処法です。 Show Asset Store search hits

ビルド直前にシーンを自動で設定をしようとしてみた【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からアプリ内でレビューを付けられるようになりました。 しかも、この公式の機能以外で評価を促す事は禁止となるようです。 アプリ上で評価を促す際には、…

XcodeにサポートしていないバージョンのiOSを追加する【iOS】

iOS

この記事でのバージョン Xcode 8.3.2 はじめに Xcodeから実機に転送する際、サポートしてないiOSの場合は以下のような警告が出て転送が失敗します。 Could not locate device support files. 今回はそんな場合の対処方法です。 対処方法

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

はじめに このブログに投稿した記事の中から、人気があったモノや有益っぽい気がするモノを厳選し、カテゴリ別にまとめてみました!随時更新中! 2017.08.03更新以下の項目を追加 - Spriteをパックする新しい仕組み、SpriteAtlasを使ってみた - SpriteやImag…

カーソルの設定【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)についての利用条件は以下の通り…

コンストラクタの継承【C#】

C#

はじめに 今回はC#でコンストラクタの継承を行う方法のご紹介です! コンストラクタの継承

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です。 違う画像の情報をコピー

Listを反転させる【C#】

C#

今回はListの小ネタで、中身を反転させる方法のご紹介です!やり方は簡単、Reverseというメソッドを使うだけです。 //リストを作成 List<int> list = new List<int>(); list.Add(1); list.Add(2); list.Add(3); //中身を列挙 foreach (int num in list) { print(num); </int></int>…

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にして、補完しないようにし…

stringの文字数を揃える【C#】

C#

はじめに 今回はstringの文字数を揃える方法のご紹介です。"1" → "1000" "33" → "3300" "525" → "5250" みたいな感じで使えるやつです。 PadLeft, PadRight

親オブジェクトが無効になっている時に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…