(:3[kanのメモ帳]

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

(:3[kanのメモ帳]

uGUIのTextをTextMesh Proへ置換する方法と旧TextMesh Proからの移行方法【Unity】【TextMesh Pro】【uGUI】

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


はじめに

uGUIのTextで欲しかった機能が揃っており、かなり魅力的なTextMesh Proですが、



既にuGUIのTextで実装してしまったものを変更するのは中々大変です。


ということで今回は、uGUIのTextをTextMesh Proへ置換する方法の紹介です!

ついでに旧バージョン(公式機能になる前)のTextMesh Proから移行する方法についてもまとめています。


uGUIのTextをTextMesh Proへ置換する方法

続きを読む

UnityでOculus Quest向けアプリを開発する際の手始め【Unity】【VR】【Oculus Quest】

この記事でのバージョン
Unity 2018.4.1f1
Oculus Integration 1.38


はじめに

今回はUnityでOculus Quest向けのゲームを開発する際の最初の一歩的な感じの記事です!




なお、VIVE(Steam)やOculus Goでも似たような記事を書いていました。






目次

  • はじめに
  • 目次
  • ユニティちゃんライブステージ
  • Oculus Quest向けにビルド
  • Oculus Questにインストール
  • Oculus Integration
  • おわりに


ユニティちゃんライブステージ

続きを読む

エディタ拡張で確認するためのウィンドウであるEditorUtility.DisplayDialogとDisplayDialogComplex【Unity】【エディタ拡張】

この記事でのバージョン
Unity 2018.4.1f.1


はじめに

以前、エディタ拡張時に使える

2つの選択肢を出して確認するためのウィンドウを自分で実装してみたという感じの記事を書きました。

ConfirmationEditorWindow.Open(
  title              : "ログ確認ウィンドウ",
  message            : "ログにメッセージを表示しても大丈夫ですか?\nヾ( ゚д゚)ノ゛",
  messageType        : MessageType.Warning,
  trueSelectionText  : "いいよ!",
  falseSelectionText : "だめ!!",
  callback           : OnSelectedConfirmation
);
//確認ウィンドウの選択がされた
private static void OnSelectedConfirmation(bool isSelectedTrue) {
  if (isSelectedTrue) {
    Debug.Log("ありがとうございます!ログ表示しました!");
  }
}

f:id:kan_kikuchi:20190609115550g:plain:w700


これはUnity自体にそういう機能がないと思って作ったのですが、

記事のコメントにて、実はUnityの機能に同様のものが存在するということを教えてもらいました……!


という事で今回は、実際にその機能を使ってみようという感じの記事です。

なお、この機能の事は全く知りませんでしたが、かなり前から存在していたようです。

(少なくともUnity5系のドキュメントにはあった)


EditorUtility.DisplayDialog

続きを読む

kan.kikuchiおすすめアセットをまとめて買うと、なんと今だけ30%OFF!【Unity】【アセット】

はじめに

今回Unity AssetStoreさんにお声掛け頂き、

なんと、私がオススメするアセットをまとめて買うと(いわゆるバンドル購入)

30%OFFになるというキャンペーンが始まりました!

もちろん既に購入済みのものがある場合は、それ以外のアセットだけで割引可能です。


f:id:kan_kikuchi:20190620065414p:plain


ちなみにこの企画、私だけでなく他の方も参加していたりします。





目次

  • はじめに
  • 目次
  • まとめ買い特別キャンペーン
  • 追加抽選キャンペーン
  • どんな人&プロジェクトにもオススメできる、Unityのウィンドウを拡張するアセットのバンドル
  • どんな人&プロジェクトにもオススメできる、便利アセットのバンドル
  • 3Dゲーム開発の定番アセットのバンドル
  • 意外と少ない2D素材のオススメアセットのバンドル
  • 意外と少ない日本のゲームっぽいBGM素材のオススメアセットのバンドル


まとめ買い特別キャンペーン

続きを読む

Slackと連携させて通知を受け取る方法 Bitbucket&GitHub&Unity Cloud Build編 2019年版【Slack】【Git】【Unity CloudBuild】

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


はじめに

BitbucketとSlackの連携をさせようと思った所、何度か(?)方法が変わったみたいで、ネット上に

色々なやり方が散見されたため、2019年6月現在の最新のやり方を備忘録的にまとめてみました!

ついでにGitHubUnity Cloud Buildとの連携方法もまとめてあります。


なお、連携させると以下のような感じで色々な通知をしてくれるようになり、

Bitbucket f:id:kan_kikuchi:20190610093544j:plain:w500
GitHub f:id:kan_kikuchi:20190611123246p:plain:w500
Unity Cloud Build f:id:kan_kikuchi:20190611124521j:plain:w500


チームでの開発時に「Pushしたよ〜」的なことを伝える必要がなくなりますし、

Unity Cloud Buildの場合は個人開発でもビルド完了のタイミングが分かるのでかなり便利です。


目次

  • はじめに
  • 目次
  • BitbucketとSlackの連携方法
  • GitHubとSlackの連携方法
  • Unity Cloud BuildとSlackの連携方法


BitbucketとSlackの連携方法

続きを読む

SpriteAtlasなどでまとめたTextureから、任意のSpriteのTextureだけを取得する方法【Unity】

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


はじめに

処理を軽くするために、複数の画像を一つにまとめて使うというのは常套手段です。

UnityではSpriteAtlasを使ってまとめたり、


f:id:kan_kikuchi:20190531071214j:plain


最初から1つの画像にまとめたものを、Sprite ModeをMultpleにして使う、などの方法があります。


f:id:kan_kikuchi:20190531071743j:plain
f:id:kan_kikuchi:20190531071722j:plain


ただ、このように複数の画像をまとめて使うとSpriteのTextureを取得した時に困った事になります。

例えばSpriteのテクスチャのサイズをログで表示してみると、

//レンダラーからSprite取得
Sprite sprite = GetComponent<SpriteRenderer>().sprite;
    
//テクスチャのサイズをログで表示
Debug.Log(sprite.texture.width);

f:id:kan_kikuchi:20190601063504j:plain


そのSpriteのサイズではなく、元々の大きな画像のサイズが表示されてしまうのです。


f:id:kan_kikuchi:20190601063516j:plain


実はこの内容の記事は既に書いていて、

その時は任意のSpriteの画素値だけを取得する方法を紹介しました。



そして今回は、任意のSpriteのTextureを取得する方法の紹介です!


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





GetTextureSameSizeAsSprite

続きを読む

「はい」と「いいえ」など、2つの選択肢を出して確認するためのウィンドウ【Unity】【エディタ拡張】


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


はじめに

エディタ拡張で何かをする前に「〇〇しますか?」のような確認が欲しいみたいな事はよくありますが、

残念ながらUnityにそういう標準機能はありません。

(もしあったらご一報頂けると幸いです!)

ありました!



という事で今回は「はい」と「いいえ」など、

2つの選択肢を出して確認するためのウィンドウを作って見ました

イメージとしては以下のような感じ。

ConfirmationEditorWindow.Open(
  title              : "ログ確認ウィンドウ",
  message            : "ログにメッセージを表示しても大丈夫ですか?\nヾ( ゚д゚)ノ゛",
  messageType        : MessageType.Warning,
  trueSelectionText  : "いいよ!",
  falseSelectionText : "だめ!!",
  callback           : OnSelectedConfirmation
);
//確認ウィンドウの選択がされた
private static void OnSelectedConfirmation(bool isSelectedTrue) {
  if (isSelectedTrue) {
    Debug.Log("ありがとうございます!ログ表示しました!");
  }
}

f:id:kan_kikuchi:20190609115550g:plain:w700


ConfirmationEditorWindow

続きを読む

範囲内に入ったパーティクルに重力等の力を加えて動きを変えるParticle System Force Field【Unity】【Particle System】

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


はじめに

今回はUnity2018.3から追加されたParticle System Force Fieldを試してみた感じの記事です!



Particle System Force Fieldは名前の通り、

範囲内に入ったパーティクルに重力等の力を加えて動きを変えるもので、

Effector2Dのパーティクル版と考えると分かりやすいかもしれません。



イメージとしては以下のような感じ。(パーティクルの設定は色以外全て同じ)


f:id:kan_kikuchi:20190605063824g:plain


目次

  • はじめに
  • 目次
  • Particle Systemの設定
  • Particle System Force Fieldの作り方
  • Particle System Force Fieldの設定項目
    • Shape : 影響範囲の設定
    • Direction : パーティクルに加える力のベクトル
    • Gravity : パーティクルを引っ張る力
    • Rotation : パーティクルを回転させる力
    • Drag : パーティクルの動きを止める力
    • VectorField : 3Dテクスチャで指定した力を加える


Particle Systemの設定

続きを読む

Hierarchy上やProject内の検索、ウィンドウの表示やアセット作成まで出来るUnity Quick Search【Unity】

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


はじめに

今回はUnityのプロジェクト内の様々な検索が出来るUnity Quick Search

というパッケージを試すついでに記事も書いてみよう!という感じの話です。


f:id:kan_kikuchi:20190602165020g:plain


ざっくり言うとSpotlightやAlfredのような機能で、

ちょっと試してみた感じ、単純なファイルの検索だけでなく、

ファイルの作成といったメニューの検索&実行も出来るでの、地味に便利そうでした。


なお、Unity Quick Searchはプレビュー版ですが、

エディタ上だけで動作するモノで、不具合があったとしてもゲームには影響を及ぼさないはずなので、

今からガンガン使っていって大丈夫だと思います。


また、Unityのどのバージョンから使えるようになったのかは定かではありませんが、

Unity Quick Searchを導入するためのPackage ManagerがUnity2018から使えるので、



おそらくUnity2017系では使えないと思われます。(2018、2019は使える)


導入

続きを読む

Xbox360&OneやPS3&4など様々なコントローラーへの対応が簡単に出来るInControl【Unity】【アセット】

この記事でのバージョン
Unity 2018.3.4f1
InControl 17.3


はじめに

UnityはInputクラスを使う事で、コントローラーへの対応が比較的簡単に行えます。



しかし、様々なコントローラーに対応しようとすると途端に面倒になります。

例えばデフォルトの状態だと、Xboxコントローラーのスタートボタンと

PS4のR2 ボタンが同じ入力として扱われる、みたいな感じです。


そこで今回紹介するのが、様々なコントローラーへの対応が簡単に出来るInControlというアセットです。



ありとあらゆるコントローラーやプラットフォームに対応しており、


f:id:kan_kikuchi:20190420105009j:plain


特にPC向けのゲームを作る際に実装時間を大幅に削減出来るオススメアセットです。


なお、本記事ではコントローラーへの対応しか紹介していませんが、

キーボードやマウス、タッチ操作にも対応出来るようです。(未確認)


導入

続きを読む