(:3[kanのメモ帳]

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

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

この記事でのバージョン
Unity 2017.1.0f3


はじめに

Unityはデフォルトの状態だと丸と四角ぐらいしかSpriteがありません。


f:id:kan_kikuchi:20170805065208j:plain


これだとモック段階でもちょっと物足りないないので、

Unityの機能の一つ、SpriteCreatorで仮のSpriteを作成してみようという記事です。


SpriteCreator

続きを読む

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

この記事でのバージョン
Unity 2017.1.0f3


はじめに

今回はタイトル通り、SpriteやImageで9Sliceを使ってみようという記事です。

ここで言う9Sliceとは画像を9分割し、分割した領域毎に拡大縮小を行う処理の事です。


f:id:kan_kikuchi:20170804073319g:plain


なお、記事中の画像は以下のアセットを使っております。





設定

続きを読む

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

この記事でのバージョン
Unity 2017.1.0f3


はじめに

今回はタイトル通り、SpriteやImageでMaskを使ってみようという記事です。

ここで言うMaskとは画像を任意の形に切り抜いて表示するような処理の事です。


f:id:kan_kikuchi:20170802074348g:plain


なお、記事中の画像は以下のアセットを使っております。





Image(uGUI)

続きを読む

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

この記事でのバージョン
Unity 2017.1.0f3


はじめに

今回はタイトル通り、

Serializableなクラスをフィールドにしたら、nullなのにコンストラクタが実行された話です。


コンストラクタが実行される

続きを読む

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


この記事でのバージョン
Unity 2017.1.0f3


はじめに

前回はSpriteAtlasの使い方等について紹介すると同時に、

GetSpriteで取得する際に文字列で指定する事や、全Spriteの取得が面倒

という問題点をあげました。



なので、今回はその問題点を改善する

SpriteAtlasに含まれるSpriteの名前を定数で自動生成するエディタ拡張と

全Spriteを楽に取得出来る拡張メソッドのご紹介です!


なお、記事中の画像は以下のアセットを使っております。





SpriteAtlasNameCreator

続きを読む

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

この記事でのバージョン
Unity 2017.1.0f3


はじめに

Unity 2017から新たにSpriteAtlasなるものが追加されました。



今までもSpriteをパックする(一つの画像にする)機能としてSpritePackerがありましたが、

ちょっと使ってみた感じ、SpriteAtlasの方がかなり良さげです。


SpritePackerと違い、SpriteAtlasというファイルが実際に出来るので分かりやすく、

何よりResources内でも使える(SpritePackerは使えない)というのが一番の利点でしょうか。


なお、そもそもSpriteをパックする(一つの画像にする)利点は、単純に言えば処理が軽くなる事です。

以下の画像はパックしたものとしてないものの比較で、

パック後はSetPass calls(描画回数)が減っているのが分かると思います。


f:id:kan_kikuchi:20170715064554j:plain
f:id:kan_kikuchi:20170715064605j:plain


という事で今回は、SpriteAtlasを使ってみた系の記事です。


なお、記事中の画像は以下のアセットを使っております。





SpriteAtlasの作成

続きを読む

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

この記事でのバージョン
Unity 5.6.1f1


はじめに

今回はLightを設置したのに反映されない!

という状況を解決するかもしれない方法のご紹介です


f:id:kan_kikuchi:20170711075332g:plain


Pixel Light Count

続きを読む

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

この記事でのバージョン
Unity 5.6.1f1


はじめに

今回はタイトル通り、属性(Attribute)とはなんぞや?という感じの記事です。

なお、基本的にUnity+C#での話になりますので、あしからず。


目次

  • はじめに
  • 目次
  • 属性とは
  • 使い方
  • オリジナル属性の作り方
  • Inspector上の見た目を変更
  • 属性を付加する対象を設定
  • 付加した属性の取得
  • おわりに
  • 参考



属性とは

続きを読む

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

この記事でのバージョン
Unity 5.6.1f1


はじめに

今回はタイトル通り、UnityでAssertを使ってみよう!という記事です。

//IsTrueは条件が真である事を確認する(偽であればエラーを出す)
Assert.IsTrue(_notActiveGameObject.activeSelf, "_notActiveGameObjectがアクティブではありません!");

f:id:kan_kikuchi:20170709081523j:plain


なお、C#にあるAssert(Unityでは使えない?)ではなく、Unity独自の話なのであしからず。


Assertとは

続きを読む

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

この記事でのバージョン
Unity 5.6.1f1
Xcode 8.3.2


はじめに

UnityではiOSのネイティヴコードからC#(またはjs)を実行するためのメソッド、UnitySendMessage

が用意されています。

Unity iOS は、“UnitySendMessage” を媒介に、限定的なネイティブからマネージコードへのコールバック( native-to-managed callback )をサポートしています


簡単に使えるUnitySendMessageですが、ターゲットになるGameObjectと呼び出すメソッドの名前

文字列で指定しないといけないという欠点もあります。

UnitySendMessage("GameObjectName1", "MethodName1", "Message to send");


これだと打ち間違いの可能性がありますし、名前の変更に対応する事もできません。


と言う事で今回は、安心安全にUnitySendMessageを使おうという記事です。


安心安全にUnitySendMessageを使う

続きを読む