rn.log

備忘録など

【Unity2018.1】Particle Systemを軽く覗いてみた

Unity2018.1のParticleSystemを軽く覗いてみました。

ParticleSystemの機能のうち、気になったものを紹介していきたいと思います。

環境

Unity2018.1.0b2

WIndows 10

機能その1: パーティクル再生終了時に処理を実行する Stop Action

パーティクルの再生終了時処理を実行する機能です

f:id:r-ngtm:20180115190330p:plain

Stop Actionを使うにはMainモジュールのLoopingのチェックを外しておく必要があります。
(チェックが入っていると再生終了しないため)

詳細

Stop Actionの選択項目は4種類あります。

f:id:r-ngtm:20180115190521p:plain

None = 何もしない
Disable = 再生終了時に自身のGameObjectを非アクティブ化
Destroy = 再生終了時に自身のGameObjectを破棄
Callback = 再生終了時に自身のコールバックを呼び出す

コールバックの使い方

下記スクリプトをParticleSystemにアタッチすると再生終了時にOnParticleSystemStopped()が実行されます。(Stop Action = "Callback"の場合のみ)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ParticleTest : MonoBehaviour
{
    void OnParticleSystemStopped()
    {
        Debug.Log("OnParticleSystemStopped");
    }
}

機能その2:パーティクルの初期色にテクスチャを使う

パーティクルのテクスチャを使用して設定できるようになりました。

f:id:r-ngtm:20180115191218p:plain

これを使うとテクスチャから湧き出るようなエフェクトが作れます。

f:id:r-ngtm:20180115184600g:plain


魔法陣エフェクトとかも簡単に作れそう。いろいろ応用がききそうな機能です。

f:id:r-ngtm:20180115185013g:plain

iPhoneXのアルファ抜きフレーム画像

iPhoneXの開発時にあると便利そうなフレーム画像。

探しても全然見つからないのでPhotoshopでサクッと作ってみました。

汎用性が高そうなので公開します。

たて (Portrait)

1125 x 2436 ピクセル

よこ (Landscape)

2436 x 1125 ピクセル

【Windowsコマンド】複数のMSペイントをまとめて消す

はじめに

私はMSペイントを使ってスクリーンショットの切り抜きをよくやるのですが、大量のMSペイントを起動してしまうことがよくあります。

MSペイントを大量に起動してしまった場合、これらをマウス操作で消していくのはなかなか大変です。

今回の記事では複数のMSペイントをコマンド一発で全部まとめて消す方法を紹介します。

MSペイントの厄介な敵 : 保存確認ダイアログ

MSペイントですが、閉じようとすると保存確認ダイアログが表示されてしまいます。 

f:id:r-ngtm:20180109163713p:plain

MSペイントを1,2個起動しているだけならまだいいですが、10、20個も起動してしまった場合は厄介です。

「保存しない」を10回も20回もクリックしないと全てのMSペイントを閉じられない。 面倒くさい。

コマンドを使うと全部まとめて消せる

「保存なんてしなくていいから全部まとめて消したい!

という場合はtaskkillコマンドを使うと複数のMSペイントを一気に消すことができます。

STEP1. コマンドプロンプトを素早く起動

「ファイル名を指定して実行」ウィンドウに cmd と入力するとコマンドプロンプトが起動できます。

f:id:r-ngtm:20180109170228p:plain:w250

Win + X を押した後 R を押すと「ファイル名を指定して実行」ウィンドウを手早く起動できます。

STEP2. taskkillコマンドでMSペイントをまとめて消す

以下のコマンドを実行すると実行中のすべてのMSペイントを強制終了します。

taskkill /im mspaint.exe /f

参考: Windowsでプロセスを強制終了するコマンド

Unityのフォルダ構成について考えてみる

Unityでゲームを作るとき、どのようなフォルダ構成でアセットを管理するか悩みどころです。

フォルダ構成が悪いと開発効率が落ちてしまいます。

「アセットはどのようなフォルダ構成にすれば良いのだろうか?」 という問に関して考えられるフォルダ構成をいくつかご紹介したいと思います。

基本方針

以下を基本的な方針とします。
・アセットストアからインポートするアセットはAssets直下に配置
・開発中のゲームで使用しているアセットはProjectフォルダの中に配置

f:id:r-ngtm:20171219112832p:plain:w512

Project/以下をどう分けるべきか

シーン、スクリプト、テクスチャなどのアセットはProjectフォルダ以下に入れることになりますが、

ここで問題となるのが、これらのアセット群をどのようなフォルダ構成にするかです。

・・・ むずかしい


3つの方法

悩みに悩んだ結果、これがよさそうだなぁという結論にたどり着きました。

そこで、考えられるフォルダ構成を3つ、今回は紹介したいと思います。

・方法1 : アセット単位でフォルダを作る

・方法2 : シーン単位でフォルダを作る

・方法3 : 音素材、デザイン素材、プログラム素材という区分でフォルダを作る

方法1. アセットの種類でフォルダを作る

アセットの種類ごとにフォルダを作ろうという思想です。

f:id:r-ngtm:20171219113353p:plain

文章で説明すると、

・シーンはSceneフォルダの中に配置

・シーンで使用するスクリプトは Scriptsフォルダの中へ配置

という管理方法です。

メリット: アセットの場所が分かりやすい

アセット群を種類で分けることのメリットは、アセットがどこにあるかが分かりやすくなるという点にあると思います。

さらに、その中でシーン別に分けることによりそのアセットがどのシーンで使われているのかも分かりやすくなります。

例えば、SceneAで使用されているテクスチャを差し替えたい場合はAssets/Project/Textures/SceneA の中だけを触れば良いので 分かりやすい。

デメリット : 同名フォルダを複数作る必要が出てしまう

この方法ですが管理が面倒くさいというデメリットがあります。

例えば、新しくシーンを作成しようとした場合などに手間がかかります。


Hogeシーンを作る場合

Assets/Project/の中にScenes/, Scripts/, Textures/フォルダが存在する場合を考えます。
Hogeシーンを作る場合以下の作業が必要になります。

  1. Assets/Project/Scenesフォルダ以下にHoge.unityを作る
  2. Assets/Project/Scriptsフォルダ以下にもHogeフォルダを作る
  3. Assets/Project/Texturesフォルダ以下にもHogeフォルダを作る

同じ名前のフォルダを複数作成する必要が出てきてしまい、これは若干面倒です。

シーンの名前変更も手間がかかる

このHogeシーンですが、名前を変えてFugaシーンに変えようとした場合にも手間がかかります。

複数あるHogeフォルダを一つ一つFugaへとリネームするという作業が必要になります。
これも面倒くさい

方法2. シーン単位でフォルダを作る

二つ目の方法は、
「アセット群をシーン単位でまとめてしまおう」
という考え方です。

f:id:r-ngtm:20171219113422p:plain:w450

シーン単位でまとめることにより、シーンと同名のフォルダを作る作業が要らなくなります。

細かい補足をすると、

・シーンアセットは Assets/Project/[シーン名]/ の中に入れる

・シーンで使用するスクリプトAssets/Project/[シーン名]/Scripts/ の中に入れる

・シーンで使用するテクスチャは Assets/Project/[シーン名]/Textures/ の中に入れる

全てのシーンで使用するスクリプトをまとめたい場合は、
Assets/Project/_Common/Scripts/というフォルダを作りその中に入れます。

メリットその1 : シーン名のフォルダは1つだけ

方法1.のデメリットとして、「シーンに対応する同名フォルダが複数必要になる」というものがありましたが、
方法2.ではシーンに対応するフォルダは1つだけで済みます。

同じ名前のフォルダを何個も作る、という面倒くさい作業はしなくて済みます。 楽です。

メリットその2 : アセット群が一か所にまとまる

この方法でアセット管理をする場合、シーンデータとシーン内で使用されているデータ群が近い場所に配置されます。
関連の強いアセット群が近い場所に配置されることにより管理がしやすいというメリットがあります。

例えば、Hogeシーンで使用しているスクリプトを編集する場合はシーンファイルの近くにあるScripts/フォルダ以下を見れば良いので
管理が楽です。

メリットその3 : 素材とシーンとの関係が分かりやすい

例えば、SceneAで使用されているテクスチャを差し替えたい場合はAssets/Project/SceneA/Textures の中だけを触れば良いので 分かりやすい。

デメリット : 同種アセットが分散してしまう

・同系統のファイルが 分散 してしまう。

例えば、Gameシーンで使用しているテクスチャはAssets/Project/Game/Texturesフォルダの中。 Titleシーンで使用しているテクスチャは Assets/Project/Title/Texturesフォルダの中。といった感じで ファイルが離れたところに置かれてしまいます。

テクスチャの差し替えをしたいとなった場合、これはちょっと手間が多いです。

方法3. 音、デザイン、プログラム単位でフォルダを作る

以下のようなフォルダ構成にします。
f:id:r-ngtm:20171219113445p:plain:w500

Designフォルダ

pngや3DモデルやFontなどのファイルはすべてデザイン素材というくくりにして

Assets/Project/Design/ 以下にそのまま入れます。

Design/以下はどのようなフォルダ構成になっていてもOKです。シーン構成と対応付ける必要はありません。

Audioフォルダ

mp3,wavファイルなどの音声ファイルはオーディオ素材というくくりにして

Assets/Project/Audio/ 以下に入れます。

これも好きな適当なフォルダ構成でも大丈夫です。シーン構成を意識する必要は皆無です。

Programフォルダ

スクリプト、シェーダー、Prefab、Scene、ScriptableObjectなどは プログラム素材 というくくりにして

Assets/Project/Program/[シーン名]/ 以下に入れます。

Program以下ではシーン構成を意識したフォルダ構成にします。

例えばGameシーンは Assets/Project/Program/Game/Game.unity としてシーンアセット(.unity)を配置します。

Gameシーンで使用するスクリプトAssets/Project/Program/Game/Scripts/ の中へ入れます。

Prefabはプログラム素材なの?

Prefabは内部的には画像ファイルや音声データといったリソースの参照を持っているだけです。

つまり、スクリプトやScriptableObjectと似たようなもので、「Prefabもプログラム素材である」というとらえ方をして問題ないのではないかと個人的に考えています。

mp3やwav = オーディオ素材
pngやfbx = デザイン素材
それ以外 = プログラム素材

という分け方をしても困らない、というのが自分の考えです。

方法3のメリット: 素材の管理がしやすい

方法3.は素材が差し替えやすい、というメリットがあります。


デザイン素材はDesignフォルダにまとめてあるので、差し替える場合はこの中だけ触れば良い。

サウンド系素材を差し替えたい場合はAudioフォルダ。

方法3 は 方法1 と 方法2 のいいとこ取り

方法2.のデメリットとして挙がっていた「同系統の素材が離れた位置に置かれてしまう」ですが、
方法3ではこれを解消しています。

むしろ、方法3は方法1と方法2のいいとこ取り、といった感じでしょうか。
プログラム系のアセットは方法2をそのまま採用しつつ、音やデザイン素材はそれとは別に一か所にまとめてしまう。

私は方法3が好きです。

方法3のデメリット : 素材とシーンの関連が分かりにくい。

方法3のデメリットとしては「シーンとデザイン素材の関連が分かりにくい」というのが考えられます。

方法2ではシーンデータと素材は近い場所に配置されていたため、関連が分かりやすいという利点がありました。

一方、方法3の場合はシーンデータと素材が離れた場所に配置されてしまうので、方法2と比べてシーンと素材との間の関連が分かりにくいというデメリットがあります。

素材の数が増えてきた場合は シーンと同名フォルダを作り、その中に素材をまとめるという形がやりやすいと思います。

f:id:r-ngtm:20171219214204p:plain:w500

まとめ

これまでに3つのフォルダ構成を紹介しましたが、どれも一長一短という印象です。
ゲームに応じて最適なフォルダ構成というのは変わるのではないかと思いました。

自分は方法3.が好きです。

【仕事効率化】Microsoft To-Doが便利なので褒めてみる

Microsoft To-Do というアプリをご存知でしょうか?

Microsoft社がリリースしているTodo管理アプリです。

ferret-plus.com

このアプリ、とても使い心地が良くて自分は毎日使っています。


今回の記事では、Microsoft To-Doを使っていて便利だなと思ったポイントを紹介したいと思います。

ちなみに、Microsoft To-Doの対応プラットフォームはWindows/iOS/Androidなど。

お品書き

タスクがアカウントと紐づく

「今日の予定」機能

タスクの追加/削除が快適(iOS)

今日の予定の管理が快適(iOS)

タスクのカテゴリー分け機能も充実

タスクのレビュー機能

便利ポイントその1: タスクがアカウントと紐づく

クラウド上で管理されるタスク

Micorosoft To-Doで入力したタスクはMicosoftアカウントと紐づき、クラウド上で管理されます。

例えば以下のような使い方ができます。

自宅のWindowsマシンでタスクを入力して、外出先ではiPhoneを使ってタスクを見る。
外出先でiPhoneでタスクを入力して、自宅のWindowsマシンで見る。

これは便利です。

バイスや場所に縛られないところがイイですね。

快適です。

バイスが壊れても安心

WindowsマシンやiPhoneが仮にぶっ壊れたとしても、入力したタスクは消えません
安心です。

場所に応じたタスク管理ができる

タスクがアカウントに紐づいているおかげで場所に応じたタスク管理をする、といったこともできます。

プライベートなタスクはプライベートなMicorosoftアカウント管理でタスク管理。
仕事のタスクは仕事用MicrosoftアカウントでTodo管理。

このように目的に応じてアカウントを使い分けることで、場所に応じたタスク管理をすることができます。

便利ポイントその2:「今日の予定」機能

続いてご紹介したいのが、「今日の予定」機能です。

「今日の予定」機能を使うと無数にあるタスクの中から必要なものだけを リストアップすることができます。
効率の良いタスク管理が可能となります。

タスクの数が増えると出てくる問題

Todoアプリを使っているとついやってしまうのが、

「あれもやろうこれもやろう」

と思ってタスクを 追加しすぎてしまう事。


これをやっているとタスクの数が増えすぎて

「今日はどのタスクをやるの?」

というのがだんだん見えなくなってきてしまいます。

タスクが多すぎて訳が分からないToDoリスト

ちなみに、自分のTodoリストにはタスクが100個以上あります。
f:id:r-ngtm:20171218195408p:plain:w240

「どれから手を付ければいいの? もう、わけがわからないよ・・・」



こんな場合に役に立つのが 「今日の予定」 機能です。

今日の予定機能が便利

今日の予定へ追加したいタスクを選ぶ

過去に入力した大量のタスクを見返しながら、

「今日はこのタスクをやるか」

というものだけを選び、これを「今日の予定」に追加します。


今日の予定へ追加したタスクを見る

追加したタスクは「今日の予定」リストから見ることができます。

これにより、今すぐやりたいタスクだけを「今日の予定」として洗い出すことができ、
今日は何をするかの計画を立てやすくなります。


これは便利です

Todoの抱える問題を解決した「今日の予定」機能

Todoリストには

「タスクの数が増えると見返すコストも増える
「タスクの数を制限するとメモしきれない

といった問題がありますが、


Microsoft To-Doの「今日の予定」機能はこれらの問題を一手に解決しています。


これぞ 「アイデア というやつですね。スゴイです。

便利ポイントその3: タスクの追加/削除が快適(iOS)

アプリの起動直後に現れる入力画面

アプリを起動すると最初に現れるのが、タスクの入力欄とタスクの一覧です。

入力画面が最初に出てくるおかげで、アプリを起動してすぐにタスク入力に移ることができます。
これは快適です。

余計な操作が不要

よくあるTodoアプリでは、アプリを起動してからタスク入力までになんらかの操作が必要だったりしますが、

Microsoft To-Doの場合はアプリを起動してすぐに入力に移ることができます。

これが素晴らしい。

操作が少ない = 快適 (重要)

Todoアプリは繰り返し使う道具です。

たった1回の余分な操作も、積もり積もれば数千回・数万回の操作になってしまいます。
面倒くさい。

人はストレスがたまる道具は使いたくないものです。

アプリ起動からすぐに入力に移れるというのはストレスが少なく、素晴らしいことだと思います。

便利ポイントその4: 今日の予定の管理が快適 (iOS)

タスクの追加が楽

タスクを右へドラッグすることで今日の予定への追加や今日の予定からの削除ができます。
f:id:r-ngtm:20171213110144g:plain

タスクを触りながら、指を右へ少し動かすだけ。 とても快適です。

タスク削除も快適

左へドラッグするとタスクそのものを削除されます。
f:id:r-ngtm:20171213113042g:plain

快適です。

便利ポイントその5 タスクのカテゴリー分け機能も充実

Micorosoft To-Doには3種類のリストが用意されています。

  1. 「今日の予定」リスト
  2. To-Doリスト
  3. 自作リスト

自分の使い方

  1. タスクは追加先は考えず、忘れないうちにリストに追加しておきます。
    追加先は「今日の予定」か「To-Do」リストです。

  2. リストの中身が増えてきたら自作リストに追加し、カテゴリー分けします。

便利ポイントその6: タスクのレビュー機能

消化しきれなかったタスクを教えてくれる

今日の予定には追加したものの消化しきれずに放置されてしまったタスクがあったとします。

Micorosoft To-Doはなんとそのタスクをリストアップしてくれます。

タスクの消化忘れもこれで防げそうです。
消化しきれなかったタスクだけでなく、過去に追加したタスクをピックアップして表示してくれたりもします。

「そういえばこのタスクがあったなぁ」とか思い出すことも。
レビュー機能便利です。

終わりに

筆者はAndroid端末を持っていないので、AndroidアプリのMicrosoft To-Doをまだ試すことができていません。

しかし Microsoft To-Doが素晴らしいアプリであることには変わりはないでしょう。

【Unity AssetStore】Hierarchy Proの紹介

Hierarchy Pro というアセットがかなり便利だったので紹介したいと思います。

Hierarchy Proについて

ヒエラルキーを高機能にするエディター拡張です。
さまざまな機能が含まれており、拡張性も高いです。

assetstore.unity.com

お値段たったの6ドル。 安い! (2017年12月15日時点)


このHierachy Proを使っていて便利だと思った機能をいくつかピックアップして簡単に紹介したいと思います。

Hierarchy Proの基本的な使い方

ヒエラルキー上の表示物は矢印で示した部分からON/OFFを切り替えることができます。

f:id:r-ngtm:20171217221350p:plain

機能その1 コンポーネントの一覧がアイコンで表示される

オブジェクトにアタッチされているコンポーネントをアイコン表示してくれる機能。

f:id:r-ngtm:20171217212052p:plain:w250

コレさえあればコンポーネントがどこにあるかが一目瞭然
コンポーネントを探す手間が省けます。

個人的には最も便利な機能だと思っています。

コンポーネントの編集機能

コンポーネントのアイコンをクリックするとメニューが表示されます。

f:id:r-ngtm:20171217213021g:plain

このメニュー上からコンポーネントのコピーやペースト、削除などが行えます。 便利です。

機能その2 選択フィルター機能

選択しているオブジェクトの中から特定のコンポーネントで絞り込む機能。

f:id:r-ngtm:20171217213655g:plain:w320

「こんな機能役に立つの?」という疑問が出てきそうですが、特定のコンポーネントを持つオブジェクトだけを編集したい時に本領を発揮します。

選択フィルター機能のメリット

Imageコンポーネント付きのオブジェクトだけを一括選択したい場合を考えます。

通常なら検索ボックスに「t:Image」を入力して、ヒエラルキーのオブジェクトをクリックして Ctrl + A 、
といった感じの面倒くさい作業をやることになりますが、
Hierarchy Proのフィルター機能を使えばそんな面倒くさい検索テキスト入力作業は必要ありません。 

オブジェクトを複数選択した後に「Filter Selection By "Image"」をクリックするだけでImageだけ選択できます。 

f:id:r-ngtm:20171217214137p:plain:w300

フィンガーポイントが節約できて快適です。

機能その3 依存関係をグラフィカルに表示してくれる機能

オブジェクトがどのオブジェクトへの参照を持っているかをノードグラフ形式で表示してくれる機能です。


例えば、ScrollViewオブジェクトを選択した場合

f:id:r-ngtm:20171217214841p:plain:w350


以下のようなノードグラフを表示してくれます。

f:id:r-ngtm:20171217214725p:plain:w400

間違えて別のオブジェクトをアタッチしていないか、などをさっと確認する場合などいろいろと使えそうです。
これは面白い。

ノードグラフを出す方法

ヒエラルキーの下のほうにある赤い丸アイコンをクリックするとノードグラフが表示されます。

f:id:r-ngtm:20171217222312p:plain:h100

キーボードの 「Shift + Alt + G」同時押しでも出せます。

機能その4 Prefabの保存モジュール

アイコンをぽちっとクリックするだけでPrefabをApplyすることができます。

f:id:r-ngtm:20171217215347p:plain:w300

「インスペクター上でApply押せば済むんじゃないの?」という疑問が出てきそうですが、

シーンに大量のPrefabが存在する場合に本領を発揮します。

InspectorのApplyボタンを押すのはコストが高い

Prefabの変更をApplyしたい場合、通常なら
「オブジェクトをクリック、インスペクター上のApplyをクリック」
という2回のマウスクリック操作が必要です。

シーンに複数のPrefabが置いてあって変更をApplyしたい場合は
オブジェクトをクリックしてApplyボタンをクリック。
また別のオブジェクトをクリックしてApplyボタンをクリック。

この作業、地味に面倒くさいです。

Prefabボタンはコストが低い

しかし、HierarchyProのPrefabボタンモジュールならボタンを1回クリックするだけでApplyが完了するので快適です。


シーンにおいてあるPrefabの数が少ないときはメリットが少ないかもしれません。

機能その5 GUIの自作機能

ヒエラルキー上にこういうGUI欲しいんだけど無いの?」というときに便利なのがカスタムモジュールです。

なんと、GUI自作できます

例えば、ImageのraycastTargetをON/OFFするGUIを自作する、といったことができます。

f:id:r-ngtm:20171217220429g:plain

カスタムモジュールのサンプル

HierarchyProにはカスタムモジュールのサンプルが付いてきます。

具体的にはCustomModule_Example.csの中にカスタムモジュールのサンプルコードが記述されています。

サンプルが親切設計

スクリプトの頭にはカスタムモジュールのテンプレートが用意されており、

これをいじるだけでお好みのカスタムモジュールが作れます。

f:id:r-ngtm:20171215203904p:plain:w300

raycastTargetをON/OFFするカスタムモジュールのソースコード

以下のソースコードはuGUIのGraphicのraycastTargetをON/OFFするカスタムモジュールです。

ちなみにuGUIのImageクラスやTextクラスはGraphicクラスを継承しています。

class RaycastTargeetModule : HierarchyExtensions.CustomModule_Slot3
{
    public override string NameOfModule { get { return "RaycastTargeet"; } }

    public override void Draw(Rect drawRect, GameObject o)
    {
        var graphic = o.GetComponent<Graphic>(); 
        if (graphic == null) { return; }

        graphic.raycastTarget = EditorGUI.Toggle(drawRect, graphic.raycastTarget); // raycastTargetをON/OFFするToggleの表示
    }

    public override string ToString(GameObject o)
    {
        return null;
    }
}

カスタムモジュールを使う

ヒエラルキー上のこのアイコンをクリック。

f:id:r-ngtm:20171217221350p:plain


出てくるメニュー中からカスタムモジュールを選択します。

f:id:r-ngtm:20171217225622p:plain:w250


カスタムモジュールがヒエラルキー上に表示されます。

f:id:r-ngtm:20171217225736p:plain:w250


いろいろ応用がききそうなカスタムモジュール

他にも以下のような使い方が考えられます。

・インスペクター上のオブジェクトアタッチがMissingになっているコンポーネントを警告表示

・座標や回転をリセットするボタンを出す

・Prefabを生成するボタン

いろいろ応用が利きそうです。

余談

自分自身も、ヒエラルキー上に情報を表示させるエディター拡張を作っていましたが、こっちのほうが便利ですね。
拡張性も高い。

こんな素晴らしいツールがたったの6ドルで手に入るなんて作者さん太っ腹です。

ちなみに、私はブラックフライデーセールで5ドルで購入しました。 なんだか申し訳ないですね。

参考URL

カスタムモジュールを書くにはエディター拡張の知識が多少なりとも必要になると思います。

エディター拡張を勉強するには以下の電子書籍がおすすめです。

anchan828.github.io

【Unity AssetStore】シングルトンを簡単に作れるアセット "Universe"を触ってみた

Universeという無料アセットを触ってみたので軽く紹介します。

assetstore.unity.com

Universeについて

・シングルトンを簡単に作れる。

・シングルトンはPrefabとして保存され、ゲーム再生時に自動でInstantiateされる。

・シングルトンはどのシーンから呼んでも大丈夫

Universeを使う準備

シーンの適当なGameObjectにUniverseコンポーネントをアタッチします。

f:id:r-ngtm:20171208002947p:plain:w400

これで準備完了です。

シングルトンを作ってみる

HogeManagerクラスを作ってみます。

using Universe;

public class HogeManager : Manager<HogeManager>
{
    public int X;
}

作ったシングルトンを呼び出してみる

マウス左クリックでHogeManagerのXの値をログ出力

using UnityEngine;

public class HogeBehaviour : MonoBehaviour
{
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Debug.Log(HogeManager.Instance.X);
        }
    }
}