(:3[kanのメモ帳]

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

Unity

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

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

はじめに このブログに投稿した記事の中から、人気があったモノや有益っぽい気がするモノを厳選し、カテゴリ別にまとめてみました!随時更新中! 2017.07.17更新以下の項目を追加 - UnityでAssertを使う - 属性(Attribute)とは 目次 はじめに 目次 Unityの機…

カーソルの設定【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.…