ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

Unity

Addressableでラベルを使って複数のアセットバンドルを一括で読み込みたい

ラベル設定 ラベルの管理画面を開く ラベルの作成 注意点 ラベルを設定する 読み込みコードを書く サンプルコード 使用するメソッド 引数について 読み込まれたアセットバンドルを取得するには 違う型を同じラベルに設定した場合、型指定はどうなる? ラベル…

Addressableを使ってみた

浦島太郎状態の私が、Addressableというパッケージを使えばアセットバンドルが楽に使えるらしいぜ!ってのを知ったので、試してみたの巻。 とりあえず、アセットバンドルを一つ作って、サーバーにあげて実機テストでゲーム画面に表示するまでをメモ。 パッケ…

デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた⑤非同期

前記事: デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた④ラムダ式 - ロバメモ - 素人のUnity覚書と奮闘記 非同期とは Taskを使って非同期処理を作る 書式 戻り値がない場合 戻り値がある場合 Thread.Sleep(3000);について async / await 読み…

デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた④ラムダ式

前記事:デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた③コールバック - ロバメモ - 素人のUnity覚書と奮闘記 ラムダ式とは 処理内容が一行の場合 引数を持たない場合 使い方 関連記事 ラムダ式とは ラムダ式とは、関数を匿名で書けるようにな…

デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた③コールバック

前記事:デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた②ActionとFuncについて - ロバメモ - 素人のUnity覚書と奮闘記 コールバックとは デリゲートの役割 関連記事 コールバックとは メソッドの完了を待って、或いはその戻り値を利用して次の…

デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた②ActionとFunc

前記事:デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた①Delegate - ロバメモ - 素人のUnity覚書と奮闘記 ActionとかFuncってなに? 名前空間の呼び出し Action 参照したいメソッドに引数がある場合 ActionとFuncの違い Func:戻り値がある場合…

デリゲート,コールバック,ラムダ式,非同期とやらを調べてみた①Delegate

前々から、ちょくちょくお見かけするなぁとは思っていたけど、スルーするのも限界が来たので、ちょっと調べてみた。 私は理系でもなければ学もない、感覚的にプログラムを理解しようとするタイプ(笑)なので、ちゃんと知りたい人には、この記事は向かないです…

インスペクターでプルダウンメニューを表示したい

やりたいこと サンプルコード 定義 参照 ポイント やりたいこと インスペクターで下図のようなプルダウンメニューを使いたい。 サンプルコード 定義 private enum PlaceList { //列挙子を定義 Tree, Entrance, Study, Ladder, Library, Courtyard, Storage }…

ButtonのColorTint仕様時に、一度クリックするとHighlighted Colorが効かなくなる

Unityバージョン やりたいこと 対処方法 Unityバージョン Unity 2020.1.17f1 やりたいこと 一度クリックするとその後、Highlighted Color(マウスオーバー時)が効かなくなってしまう現象が起きた。 クリック後もHighlighted Colorを適用したい。 対処方法 N…

ボールをバウンドさせたい Physic Material

やりたいこと 1:ボール(Sphere)にRigidbodyコンポーネントを追加する 2:Phisic Materialアセットを追加 3:Phisic Materialの設定をする 4:マテリアルをゲームオブジェクト に適用させる 4:床の設定 Phisic Materialの項目について やりたいこと 自…

リワード広告を使ってみた

UnityでAdmobのリワード広告を使ってみたので方法と注意点をメモ。 導入方法 コード 遭遇したエラーと対処法 エラー内容 原因 対処法 テスト広告についての問題点 〜保留中〜 導入方法 リワード広告 | Unity | Google Developers 概ね、公式通りでできた。 …

ボタンをダブルクリック判定したい

やりたいこと コード インスペクター設定 やりたいこと シングルクリックか、ダブルクリックかを判定して個別に処理したい。 コード using System.Collections; using UnityEngine; public class MyButton : MonoBehaviour { bool isClick; public void OnCl…

WebGLからFirebaseのデータを取得できるようにしたい

やりたいこと 環境 前提 仕組み HTML側の処理 C#からjavascriptを実行するには jslib側の処理 (1)mergeIntoで全体を囲む (2)関数を定義する (3)jslibを保存する cs側の処理 DllImportを書く DllImportって何? Firebaseからデータを受け取るには cs側の処理 …

ScripttableObjectを継承したクラスのインスタンスを作成したら警告された

エラー内容 原因 対処方法 エラー内容 MyTable must be instantiated using the ScriptableObject.CreateInstance method instead of new MyTable. UnityEngine.ScriptableObject:.ctor() 原因 上記のMyTableというのは、ScripttableObjectを継承したクラス…

クロスドメイン対策【Firebase】【WebGL】

やりたいこと 問題点 解決方法 作業要件 (1)インストール (2)初期設定 (3)クロスドメイン設定ファイルを作る 注意点 (4)作成したjsonファイルをアップロードする やりたいこと Firestorageにアセットバンドルを置いて、WebGLから読み込みたい。 …

プラットフォームの判別ではまったこと

ちょっとハマったのでメモ。 問題点 WebGLの場合と、エディターの場合で値を分けようと思って、 #if UNITY_WEBGL としたら、エディターでも実行されてしまった。 回避方法 なんてことはない、エディターだけ条件つけたら回避できたんだけど、ちょっとモヤモ…

CanvasのGameObjectをmousePositionに追従させたい

あんまり自信ないかも。 いや、自信満々で書いた記事などないけど。笑 やりたいこと やり方 考え方 座標の違いを解消する 座標の起点の違いを解消する やりたいこと お題通り、キャンバスに配置した画像をカーソル追従させたい。 やり方 以下のコードを追従…

Contentの高さをリスト要素に合わせるScrollViewの設定方法

Step1 : Contentにコンポーネントを追加 Vertical Layout Groupを追加 Content Size Filterを追加 Step2 : Contentの子にレイアウト用のGameObjectを作成 Step3 : レイアウト用GameObjectにコンポーネントを追加 Content Size Filterを追加 Vertical Layout …

Unity(C#)+FirebaseをWebGLで使いたい②:ログイン編

おさらい やりたいこと 1:コンソールの設定 ログイン方法を設定 サポートメールを設定 確認メールのテンプレートを設定 2:HTMLにSDKを追加 謎のパス "/__/" 初期設定について deferの意味 3:メアドを入力して確認メールを送信するまで ローカルストレ…

Unity(C#)+FirebaseをWebGLで使いたい①:環境整備編

やりたいこと 仕組み Firebaseを使える環境にする 1:Firebase CLIをインストールする 2:Firebaseにログイン 3:フォルダを作成する 4:コマンドで初期設定をする localhostで実行する サーバーを終了するには デプロイ 本番サイトを停止 やりたいこと …

Dropdownのリスト要素をスクリプトで設定したい

やりたいこと コード やりたいこと タイトル通り、ドロップダウンの要素をスクリプトから設定する方法。 忘れるのでメモ。 コード 例)1〜99の数字を入れる場合 Dropdown.options.Clear(); //要素を削除しておく for (int i = 1; i <= 99; i++) { Dropdown.o…

選択されているゲームオブジェクトを取得するには

やりたいこと お題通り、選択されているゲームオブジェクト(ボタン)を取得したい。 コード using UnityEngine.EventSystems; GameObject obj = EventSystem.current.currentSelectedGameObject; 以上。

UI Mask処理の際の注意点

マスクの方法 問題点 原因 結論 マスクの方法 Canvasに配置した画像をマスク処理する場合 Image(マスク範囲画像)←ここにMaskコンポーネントをアタッチ └ Image(マスクしたい画像) 問題点 見辛い画像だけど、右側はマスクできていない。 原因 マスクの範囲…

現在日時を取得するときの不正対策

やりたいこと 参考サイト様 コード 呼び出し方法 ※2019/06/30 コード修正 やりたいこと 端末から日時を取得する場合、端末の時刻を操作されると狂ってしまう。ということで、端末以外から日時を取得したい。 その方法を叶えてくれるのが NICT(日本標準時(JS…

コルーチンでTime.timeScaleを使ってはまったこと

問題点 再生速度をTime.timeScaleを使って変更しているため、コルーチン内で下記のような処理をしていたら、Time.timeScale=0のときにWaitForSeconds()に入るとTime.timeScale=1に戻ってもコルーチンが再開されなかった。 float walk_speed = 0.1f; IEnumera…

インスペクターのリストを並び替えたい

やりたいこと ReorderableInspectorを入手 インポート 使い方 やりたいこと インスペクター上でリストの要素が入れ替えられる神ツールがあったので、遠慮なく使わせていただきます♪ ↓ リスト要素がドラッグで入れ替え可能に! ReorderableInspectorを入手 入…

Gameウィンドウのスクリーンショットを撮りたい

やりたいこと スクリプトを作成 コード 画像の保管場所 画像の名前 スクリーンショットの撮り方 ショートカットキーを変更したい 解像度の設定 使用したメソッド 参考にしたサイト様 やりたいこと OSのスクリーンショット機能で撮影していたけど、切り取りし…

PlayerPrefsを使ったWebGLをphpに置いた時に生じた不具合と回避策

サイトの仕組み 生じた不具合 セーブデータファイルが作成される場所 回避策 サイトの仕組み 私のサイトはphpで作成している。 といっても、高度なことはできなくて、ただヘッダー・フッター・メニューなどを分けて読み込むだけの単純なもの。 <div id="right_container"> </div> //サイト内…

MonoBehaviourと他のクラスを多重継承したい場合

スーパークラスの書き方 サブクラスの書き方 スーパークラスの書き方 ・MonoBehaviourを継承したスーパークラスを作成する。 ・virtualキーワードをつけてStart()などを作成しておく。 ・アクセス修飾子もサブクラスで使えるようにしておくこと。 using Syst…

WebGLからJavascriptの関数を呼び出す

※Unity5.6以前の古いやり方です。 外部リンクを貼りたいけど、URLが変更する可能性がある場合、逐一ビルドするのは面倒。 ということで、html側からjavascriptでなんとかならんか?と思って調べてみたら、なんとかなった♪ WebGL側の処理 Application.Externa…