Unityをインストールします
Unityをインストールするには最初にメールアカウントが必要でアカウント登録をします
アカウント登録をすれば 個人ならPersonalを無料でダウンロードインストールできます
(2025/4/5の情報)
これを書いている時のダウンロードサイトは↓ココです
https://unity.com/ja/download
バージョンはこの時点で6ですが、バージョンごとに多少URLや手順が変わりますので
細かくは最新のUnityインストール手順を検索して実行しましょう。
Unityエディターのインストールされている場所
Unity HubのインストールされているUnityエディターのバージョンの所に
Unityエディターのインストールパスが表示されています
Unityにモジュールを加える
Unityは最初iPhoneやandroid , web 等のアプリを作る機能は入っていないので
それぞれの機能をインストールをします。
「インストール」メニューで「設定」アイコンをクリックして「モジュールを加える」を選択します
androidの開発に必要なものはこの辺り
android Build Support
iPhone 版の開発のために「WebGL Build Support」というのを選びます
iPhone版のアプリを作るにはmacを購入して、iOS Dev Center に登録して、と色々費用が掛かるので
Unity Play に Webアプリをアップして配信します。
Web アプリを配信してしまうとandroid でも Windowsでもブラウザがあればどれでも動いてしまいます。
最新のUnity6では webGLではなく web と呼びます。
Visual Studio 側に必要な設定
VSの方にUnityを使えるように設定しておく必要もある
VSのメニュー「ツール」→「ツールと機能を取得」
ユニティの開発に必要な機能を追加インストール
android アプリや web アプリの開発が出来る状態にして設定をする
Menu → File → Build Profiles を開く
モジュールがインストールされていたら、プラットフォームを切り替えることが出来るので
android や web を切り替えて「Switch Platform」ボタンをクリックすると、そのアプリを開発している状態に
なるよ、ただUnity エディター上での見た目はほとんど全く同じで、Buildを実行した時に
どのプラットフォームの実行ファイルが作成されるかという事
Menu → Edit → Project setting ... → Playerを開く
モジュールが入っていたら、それぞれ「android」や「Web」のタブがあるので、こちらをそれぞれ設定していくと
どのようにビルドして、実行ファイルをエクスポートするか。
アプリアイコンやアプリ起動時の画面、ディスプレイにどのように表示するかや
どのようにビルドするかなど細かく設定が出来ます。
アプリを公開する
GithubでWebアプリを公開する
1.
girhubのページでアカウントを作成します
アカウント名はメールアドレスです。
「ユーザー名」「リポジトリ名」を決めます。これは1つのアカウントで作れるフォルダ名でフォルダ階層です
「ユーザー名」/
「リポジトリ名」(1個目)
「リポジトリ名」(2個目)
な感じ
2.
リポジトリを作成
右上の「+」メニューから「New repository」を選択
リポジトリ名を入力
「Public」(公開)を選択 無料アカウントでは(公開をするかしないかしか選べないかな、公開しない人はこのサービスを使う理由は無いかな)
※注意 最初にREADME.mdを作っておくなどして、リポジトリ内にファイルが1個以上ないと
表示がとてもややこしいので、最初にファイルを1個作っておくか。あちこちクリックしていると
ファイルが作られることがある
※gihtubのメニューは慣れないと非常に分かりにくい、使わない機能も結構あるので使う機能の場所
が分かってくるまでがかなり大変です
3.
公開URLを調べる
Settings → Pages → Github Pages → Your site live at XXXXXX の所
4.
ファイルをアップします
最初に「Code」メニューに移動します ※この時最初に何かファイルが1個作られていないと表示が
通常と全く違うので注意が必要です。(gitの人はNullに弱そう)
ブランチ名は通常「main」でいいです。ボタンは「+」「Add file」だったりいろいろ
5.
フォルダを作りたい場合、とりあえず何かファイルを作ろうとして、名前入力時に
フォルダ名を入力するというやり方をする様です。(手順が謎ですが、こうする)
Add file → +Create new file → エディットボックスに → aaa/aaa/bbb.txt のように入力 → Commit change...
6.
ファイルを削除
ファイル毎のメニューに「Delete file」機能があるのですが メニューの場所が分かりにくいので注意です
また フォルダ内の最後の1ファイルを削除するとフォルダも消えてしまうのでその点も注意が必要です
※本当にめんどい仕様
7.
ディレクトリを削除 ファイルの削除とインターフェイスはほぼ同じです
フォルダ内のファイルも消えてくれるので その点は便利(出来て当たり前ですが)
8.
リポジトリはどこか?
Settings → Pages → Github Pages → Your site live at XXXXXX の所に公開URLがあると思います
パスの構成は
https://github.com/「ユーザー名」/「リポジトリ名」.git
もしくは
「公開URL」.git
です。
最初に「windows Powershell 」を探しましょう。ウィンドウズに最初から入っているはずですので
windows Powershell を起動できる状態にしておきましょう
9.
クローンしてリポジトリを準備
最初にローカルにリポジトリを作らないといけないです。
「クローン」するとサーバーから取ってくることが出来ます
c:\Home に取ってくることにします
・windows Powershell を起動
・> cd c:\Home クローンしたい場所に移動
・> git clone https://github.com/「ユーザー名」/「リポジトリ名」.git ←クローンする
・C:\Home\「リポジトリ名」 ←リポジトリが取ってこれます
10.
サーバー側の変更を取得する(プルする)
コマンドは基本的にリポジトリのルートで実行します。
> cd C:\Home\「リポジトリ名」 ←リポジトリのルートに移動
> git pull origin main ← main ブランチをプルする(最新を取得)
11.
コマンドでファイルをアップする(例です)
> git add develop\* ←develop はフォルダ名です 「git add ./* とすれば、全部上げる事になる(これでも問題ない)」
> git commit -m "コミットメッセージ" ←コミットします リポジトリ全体に対してです
> git push origin main ←main ブランチに「プッシュ」します。プッシュはプルの反対で基本毎回セットでやる
※細かい操作方法は、他でも調べてください 普通は一括でドーンと上げたらいいのでこれだけ覚えたら大丈夫
Google Playストアにアプリをアップする
Google Play Console にアクセスしてアカウントを登録しましょう
そして 簡単に説明するとクレジットで25ドル支払って 本人確認など Google Play Console内の 必要な
手順を全て入力するとPlayストアにアプリをアップする事が出来る Google Play Console 内のページに
アクセスできるメニューが現れます
※注意その1
Google Play Consoleに登録するアカウントは公開されることは無いので、個人の
プライベートのもので問題ないのですが、デベロッパー用(公開用)のメールを別で
作る必要がありますので先に作っておきましょう。
また、プライバシーポリシーURLなるものも用意しないといけないのですが公開用の
デベロッパーメールのgoogleサイトで作るのが常套手段の様です。
プライバシーポリシーURLの準備もここ数年で必須化されてきている様です(2025年現在)
※注意その2
2024年から個人の開発者は住所と氏名の公開が必須になっています。屋号を取るなど
回避する方法もある様ですが、相当大変なので、最初によく考えて挑みましょう
※注意その3
本人確認に本人確認書類が必要なので準備が必要です。そして審査に1日程度かかります
また、クローズテストの通過も事実上の必須となっており12人以上のテスターと14日
間のインストールチェックを行わないとリリース(公開)できません。
「ココナラ」に
「Google Playのクローズドテスト代行します」
「現役開発者が12人分以上のテスターで14日間実施・報告します」
こういうサービスをしている方がいたりします。
個人の開発で、いきなり12人以上のテスターを集めるなんて、結構難しいので
こういうのを探すのがいいでしょう 費用は10000円くらい。
プライバシーポリシーURLを作る
1.
デベロッパー用(公開用)のメール( gmail ) を作ります。
(プライベートで使用するのとは別のアカウントを作った方がいいです。)
2.
プライバシーポリシーのページをgoogleサイトで作ります。
作ったgmailのgoogleサイトを作ります
初めてだと、理解して完成するまで、かなりの手順がありますが
順にやって行けば、それほど作り方は難しくないので、いろんなサイトでやり方を調べて自分なりの
プライバシーポリシーページを作りましょう
3.
アナリスティックサイトにアクセスします。googleで「google アナリスティック」で検索します
検索結果にgmailと連動した。アナリスティックのページが表示されると思います。
最初にアナリスティックサイトで自分の作ったgoogleサイトの情報を登録します。
最初のセットアップまで完了したら。「測定ID G-XXXXXXXXXX」を探してコピーします。
4.
・Googleサイトを開く
・右上の「歯車(設定)」アイコンをクリック
・「アナリティクス」タブを開く
・「Googleアナリティクスの測定ID(G-XXXXXXXXXX)」を入力
・アナリスティックを有効にする
・24時間待つ(gtag.jsが自動でgoogleに埋め込まれるまで最大24時間かかる )
5.
Google Search Consoleにアクセスします。(gmailと連動したページを開くのがいいと思います)
検索でGoogle Search Consoleをググったら出てきます
自分のgoogleサイトの「公開サイトリンクをコピー」(https://sites.google.com/view/XXXXXXXXXX)
Google Search Consoleで、「プロパティを追加」→「公開サイトリンクをペースト」します。
※2回目からは、「プロパティ」は保存されていると思います。
そして「所有権の確認」→「Googleアナリティクス」→「確認」で、成功すれば、google検索に登録できるようになる。
6.
Google Search Consoleで「URL検査」機能でサイトのインデックス状況をチェック します
登録されていなければ「インデックス登録をリクエスト」します。
ページがいくつかある場合は、複数のページを個別に「インデックス登録のリクエスト」をします。
登録してから、実際にページが検索結果に表示されるようになるまでに時間がかかります
※ここまでの作業をしないと、google検索してもページが表示されません
7.
検索されるようになったか、確認する(検索されるようになるまでにも少し時間がかかる可能性があります)
google検索で、検索窓に以下のように入力:
site:「あなたのサイトのURL」 ※https://を除いたURLパス
例)site:sites.google.com/view/XXXXXXXXXX
検索結果にgoogleサイトのページが出てきたら成功。
Unityからリリースする時に2回目にアップする時に注意する事
・Project setting → Player → Other Setting →Configuration → Scripting Backend → iL2CPP にする
・Project setting → Player → Other Setting →Configuration →Target architectures → arm64 にチェック
・Project setting → Player → Other Setting →
Versionを増やす。(例 1.0.0 → 1.0.1)
Version CodeをVersionに合わせる(例 Version 13.2.5) VersionCode= 130205
・Project setting → Player → Other Setting → Active Input Handling → Input System Package(New) を選択(androidの場合はこれを設定しないと警告が出るし、全プラットフォームでこれで問題ないはず。初回のみ)
・Project setting → Player → Publish Setting → Custom Keystore のチェックを入れる
・元のkeystore ファイルを選択し→ロード。→パスワードを入力。
keystoneパスワード ←ロードしたら再入力する
Alias ●●● ←これはロードしたものが合ってるか確認するだけ
Alias password ←ロードしたら再入力する
・Build Profiles → Android -> Development Buildをオフ(オフにしないとaabアップロード時にエラーが出ます、初回のみ)
・Build Profiles → Android → Build App Bundle ( aabをビルド )のチェックを入れる ※aabが作られる
・Build Profiles → Android → Build パスを指定して、aabを保存
※aabを Play Console にドロップする
Unityでリリース(aabをアップ)し無事に終わってまた開発に戻す時の手順
Project setting → Player → Other Setting →Configuration → Scripting Backend → Mono にする
Project setting → Player → Other Setting →Configuration →Target architectures → armv7 にチェック
Project setting -> Player -> Publish Setting -> Custom Keystore のチェックを外す。
Build Profiles -> Android -> Build App Bundle ( aabをビルド )のチェックを外す ※apkが作られる
※Keystoreファイルは絶対、書き換えたり、消したりしてはいけない
Build and Run で、直接実行してデバッグ
「Development Build」というのは基本的にチェックを入れないでいいものの様です
このフラグはDEVELOPMENT_BUILDという定義と連動している様で、元々DEVELOPMENT_BUILD
はUnity側ではなくC#側に存在している様なのです。そして
Unityはこの定義をユーザーがデバッグ機能を入れるかどうかの切り替えとして使わせようとしていたのかもしれませんが
どうやら、この定義はUnityエディター上では正しく動作していない様で、ハッキリ言って使い勝手が悪いので
Development Buildのチェックはオフのままが一番いいようです
それからKeystoreファイルもとても重要なファイルで、Play Console上に1回でもKeystoreファイルの登録されたアプリを上げて審査を通ってしまうと、2回目からは1回目と同じKeystoreファイルを使っていないとエラーが出ます。もう絶対に戻せない事になる(全部登録しなおしたら行ける、たぶん)ので、最初良く分からない段階で、いろいろ触ってて2回目やる前に、作り直したりしたら
一巻の終わりなので注意しましょう。
審査後、アプリをすぐに公開せずに、自分の好きなタイミングで公開させたい
アプリの公開日を特定の日付にしたい場合や、サーバーと通信するアプリで、サーバーとアプチのバージョンを
合わせたい場合、審査の終了する時間はコントロールできないので、アプリの公開タイミングを手動にすることが出来ます
新しいバージョンのアプリの申請時、審査中のリンクの中に、下の様なリンクがあるので
-----------------------------
審査中。[公開の概要] に移動brightness_1バージョン コード: 1 件
-----------------------------
公開の概要に移動します。
-----------------------------
管理対象の公開 「管理対象の公開をオンにする」もしくは「管理対象の公開をオフにする」
-----------------------------
という項目があります。表示がとても分かりにくいので、注意が必要です
-----------------------------
🔘管理対象の公開: オン
アップデートを Google Play で公開するタイミングを管理できます。審査中の変更は、指定するまでは公開されません。
🔘管理対象の公開: オフ
アップデートは承認されるとすぐに自動的に公開されます。審査中の変更は、承認されるとすぐに公開されます。
-----------------------------
中にはこのような表示があるので、「管理対象の公開:オン」にすると手動で
公開できるようになります。
テキスト表示が「オン」「オフ」「オンにする」「オフにする」あちこちにあって今どっち
なのか、どっちにしたのか非常に分かりにくいです。
審査の通りやすい時間帯
androidのアプリの審査の行われている時間帯は、日本では主に、日本の平日の昼間に行われることが多いです。
ただ、全体としては最もアメリカで多く審査が行われているので、アメリカ時間の平日の
昼間に審査が通ることもあり得ます。
日本時間
月曜~金曜 AM9:00 - PM6:00 (土日祝日休み)
火曜~土曜 AM1:00 - AM10:00 (土日祝日の深夜は休み)
アメリカ太平洋時間
月曜~金曜 AM9:00 - PM6:00 (土日祝日休み)
Google Cloud Run を始める
Google Cloud Runは Asp.net を使って、websocket 通信を始めるのに最適な環境です
・Google Cloud コンソールにアクセスして アカウントを作りましょう
Google Cloudコンソールの中には Asp.net の中には 「Cloud Run」以外のサービスもたくさんあります
「Cloud Run」サービスそのものも、いろんな機能を持っています。Google Cloudコンソール内の
必要な機能を有効にしていきます。
・ナビゲーションメニュー > 「APIとサービス」 > ライブラリ > 「Cloud Run」で検索します
→「Cloud Run Admin API」をAPI有効にします
・ナビゲーションメニュー > 「APIとサービス」 > ライブラリ > 「Cloud Build」で検索
→「Cloud Build API」を有効にします
サービスを作成していきます
コンテナイメージのURL
※始める時点でコンテナをアップする場所を何か入れないといけない。
とりあえずデフォルトで下記設定する
※コンテナ イメージの URL は必須です。とりあえずサンプルを作って試してみましょう。
https://cloud.google.com/run/docs/building/containers?hl=ja
サービスの名前
「ServiceName」
リージョン(サーバーの事、近い所を選択するのでいい)
asia-northeast1(東京)
asia-northeast2(大阪)
エントリポイントURL(ここにアクセスしたらリクエスト、レスポンスできる様になるパス)
エントリポイントの命名原理
https://[ServiceName]-[ランダム番号][リージョン].run.app
ランダム番号はGoogleに最初に決定されて固定です。
リージョンはサーバーの名前です
ServiceNameは最初に自分が命名したサービス名です。
サービスが同じ場合は、デプロイしようとしたデータは上書きされます。
※デプロイすると古いリビジョンが残るので、たまに削除する必要があります
Cloud IAM を使用して受信リクエストを認証する
未承認の呼び出しを許可
通常のウェブリクエストを受け付ける事になる。セットアップ時は確認の為こちらでいい。後から変更できる
●認証が必要 Cloud IAM を使用して承認済みユーザーを管理します。
課金
●リクエストベース 通信量が少ない間はこちらが安い
インスタンスベース リクエスト数が極めて多い、ゲーム等で、
月10000円以上になる場合、こちらを検討
サービスのスケーリング
●自動スケーリング ※リクエストベースではこの設定が必須
インスタンスの最小数 0 ※リクエストベースではこの設定が必須
手動スケーリング インスタンスベースなら料金と検討次第
Ingress
内部 主に自分で作成したGoogle Cloud内の他のサービスとやり取りを行う場合
●すべて 通常のサーバーサービスはこちらを選択
コンテナポート 8080
リソース
Google Cloud Monitoringで監視
256MB 1CPU
GPU なし
ヘルスチェック とりあえずなし
コンテナは※後から追加、します。
リクエスト
タイムアウト 3000秒 デフォルト300秒 (最大3600 ※1時間)
※ソケット通信の場合、この数字を長めに設定しておいた方がいいです
インスタンスあたりの最大同時リクエスト数(同時接続)
80 (default 80) ※数字が大きくても直接課金には響かない
実行環境
デフォルト Cloud Run が適切な実行環境を選択します。
第1世代 安い
第2世代 高い、速い
リビジョンスケーリング
インスタンスの最小数 0 ※0にしないと値段が高くなる
インスタンスの最大数 100 下げても得するわけではない。
起動時の CPU ブースト ✔チェックする
※タイムアウトが発生しやすくなるのでチェックする方がいい
※料金にはさほど影響ない?
Visual Studio 2022 ソリューションを作成
VS2022のセットアップ
Visual Studio インストーラーを使って
ASP.NET の開発 ツールをインストール
dotNet Core 8.0 9.0 等を入れる
VSで新しいプロジェクトを作成します
ASP.NET Core Web API
・フレームワーク .net Core 8.0
・HTTPS構成→なし
・認証の種類→なし
・コンテナーのサポートを有効にする→チェックする
・コンテナーOS→Linux
・コンテナービルドの種類→Dockerfile
launchSettings.json ファイルの書き方
このファイルは、ローカル開発専用のファイルです。
"http" Kestrel直起動(ローカル環境では、これで作るのがいいでしょう)
"IIS Express"
"Container (Dockerfile)" クラウドと近い環境
※Visual Studio のF5で実行す売る時のメニュー内で選択できます
launchBrowser 実行時にブラウザを起動するかどうか
true する
false しない
"launchUrl":とは
launchBrowser=trueの時に、ブラウザが自動で開くパス。websocket:では、意味がない
"publishAllPorts":とは
true 全ポートを解放する。ローカル環境のみの設定で、利便性の為、解放している
false (8080以外を)閉じる
"useSSL":
true SSLを使う、google cloud runなら、使うがデフォルト
false
VisualStudioからCloud run へASP.netのサーバープログラムをデプロイするための環境設定
1.
Google Cloud SDK(gcloud CLI)インストールします
グーグルのサイトを探して、インストーラをダウンロードします。
ググれば、すぐに出てきます。
https://cloud.google.com/sdk/docs/install?hl=ja
ダウンロード出来たら
「GoogleCloudSDKInstaller.exe」を、ダブルクリックして実行。
※この時「Power Shell」にチェックを入れて、一緒にインストールしておきましょう。ただし後述しますが
あまり使いません。
※インストール直後にすぐサインインする必要はありません。
2.
Google Cloud Tools for Visual Studio 2022をインストールする
VisualStudio2022のメニューから「機能拡張マネージャ」を開く
検索窓から「Google Cloud Tools」で検索
microsoftのストアから無料で「Google Cloud Tools for Visual Studio」を
インストールできます。
インストールを進めるには一旦Visual Studio を閉じる必要があります。
3.
GCP にログイン
Visual Studio のメニューから
Tools > Google Cloud Tools > Manage Accounts
で GCP アカウントにログインします。
※最初にこの方法を選択すると「このアプリはブロックされます」
と表示されたりします。その場合は4.を実行します
4.
gcloud CLI の認証をする
スタートメニューから「PowerShell」と検索して、右クリック → 「管理者として実行」。
Power Shellで
>gcloud auth login「エンター」
と実行すると、デフォルトのブラウザが開くので、基本的にOKしていけば
gcloud CLI の認証が完了しました。
と表示されますので、そうすれば成功です。
デフォルトプロジェクトを設定
更に、Power Shellで、サービスIDをセットします。
サービスIDとは
サービスID=[[cloud run サービス名]-123456]
です。 ※数字部分は12桁
>gcloud config set project サービスID「エンター」
※デフォルトプロジェクトが設定されているか確認
>gcloud config list
※重要 Power Shellは、ここまで、そして「Google Cloud Tools for Visual Studio 2022」
も使えなさそうなので、以降はBashでやります。
Cloud run のエントリポイントURLへプログラムをデプロイする
どうやらGoogle Cloud Tools for Visual Studio 2022は、2025年現在、使えないか、使いにくそうです。
また、「Power Shell」も入れておいた方がいいですが、AI曰くbashの方が使いやすいそうです。
ですので「Google Cloud SDK Shell」で、デプロイします。
・スタートメニュー「Google Cloud SDK」→「Google Cloud SDK Shell」を実行します※これがBASHです。
※Cloud build は1日120ビルドは無料
・cdコマンドで dockerfile の存在するvisual studio プロジェクトに
移動します。「カレントディレクトリを移動」
※dockerfile と [プロジェクト名].csproj は同じフォルダにある方が、初心者には都合が良さそうです。
なぜかというと、パスとかカレントディレクトリ問題でビルドエラーが出やすくなります。
一旦ビルドが通って、各項目の意味が分かってから、階層分け等やりましょう。
以下コマンド別説明(結構面倒ですが、何度も前後してコマンドするし、覚えるしかないので覚えましょう)
>gcloud init
初期化したい場合に呼びます。※諸々リセット、環境変数など覚えているものをやり直す時に呼ぶ
>gcloud auth login
ログイン(その日の作業の最初にログインしておいたらいいです。翌日も覚えてるかも)
gmailアカウントと紐づけます。そのアカウントの google cloud コンソールは1個という事ですね。
>gcloud projects list
プロジェクトの情報を表示
PROJECT_ID NAME PROJECT_NUMBER
XXXX-XXXXX-XXXXXX-b5 My First Project 000000000000
PROJECT_IDは使いますので覚えておきましょう
※通常はプロジェクトは1個表示されます。1個のプロジェクトに複数のサービスが作れます
> gcloud run services list
サービスの情報をリスト
SERVICE REGION URL LAST DEPLOYED BY LAST DEPLOYED AT
> [サービス名1] [リージョン] https://[サービス名1].[リージョン].run.app [アカウント] [日付]
> [サービス名2] [リージョン] https://[サービス名2].[リージョン].run.app [アカウント] [日付]
> [サービス名3] [リージョン] https://[サービス名3].[リージョン].run.app [アカウント] [日付]
複数サービスを作るとそれぞれ情報が出てきます
>gcloud builds submit --tag "gcr.io/[PROJECT_ID]/[サービス名]"
ビルドする
成功するのに最も難度の高いコマンドです。
dockerfile の記述に従ってビルドしていきます。カレントディレクトリにdockerfile がある方がいいです
csprojファイルもカレントにある方が幸せです。dockerfileの記述方法もほぼ理解しないとハマります。
※ファイルの整理がしたかったら*.csファイルなど、沢山あるファイルを別フォルダに移動させましょう。
>gcloud run deploy [サービス名] \
--image gcr.io/[PROJECT_ID]/[サービス名] \
--platform managed \
--region [リージョン名] \
--allow-unauthenticated
デプロイする。
--image: ビルド時に作成したイメージ名
--region: 東京リージョンの場合 asia-northeast1 自分の選択したリージョンを書く
--allow-unauthenticated: 誰でもアクセスできる(認証不要)
--no-allow-unauthenticated (認証必要にしたい場合)
※デプロイに成功したら、プログラムはもう実行されています。エントリポイントにアクセスしたら反応があるはずです。
※bash 上にはコマンドを1行で「コピー」→「ペースト」する方が、上手くいきます。
>gcloud run services describe [サービス名] --region [リージョン名] --format="value(status.url)"
サービスの URL を確認 (デプロイしたリビジョン毎の情報です)
>gcloud run services describe [サービス名] --region=[リージョン名]
サービスの情報
※結構いろいろ出ます。クラウドコンソールの情報が見れる感じ。
・Unityのメニュー→Window→パッケージマネージャを開きます
コピったURLを、下図の所でペーストしたらNativeWebSocketの情報が表示されるので
Updateすればインストールなり、更新されるなりします
Unityの使い方
文字コードが化けているのを直す
Visual Studioで文字コードを修正したいファイルを選択
「ファイル」→「名前をつけて(ファイル名)を保存」ダイアログを開く
「上書き保存」ボタンの横のドロップダウンから「エンコード付きで保存…」を選択
「エンコード」→「Unicode(UTF-8シグネチャ付き)」にする
Visual Studio のバージョンを合わせる
UnityからScriptをダブルクリックしたりしてもVisual Studioが立ち上がらなかったり
違うバージョンのVisual Studioが立ち上がる場合は
Preference... → External Tools で設定しましょう
Visual Studio のバージョンは新しい方が安定するので個人の開発者は新しいのを使いましょう
Visual Studio に Unity の開発が出来る機能をインストールする
Visual Studio Installer を起動する。
下図の機能を入れる
Unity の reloading domain が無限に終わらない、時間がかかる問題
きっかけは、いろいろあると思いますが、ある日突然「reloading domain」のウィンドウが
出っぱなしになる問題が起きて、強制終了後、再起動をすると
Assertion failed on expression: '!(o->TestHideFlag(Object::kDontSaveInEditor) && (options & kAllowDontSaveObjectsToBePersistent) == 0)'
こんなエラーが出たりしますが直しようがない。こういう場合は、Unity Editorを強制終了し
プロジェクトフォルダ(Assetsなどがあるフォルダ)内にあり下記のフォルダ等を
/Library
/obj
/Temp
/.vs
*.csproj
*.sln
一旦全部削除します。(これらはUnityが自動生成しているファイル群ですので消しても問題ありません)
あとは、再起動するだけ、正し結構時間がかかるので、覚悟してください
Unity の基礎知識
解ってる人にとって、当たり前すぎてどこにも書いてないので、改めて書きますが
Button や Image AudioSource TextMeshProUGUI Canvas などシーンのヒエラルキーに
登録できるものは、ほぼ gmaeObjectと transformを持ってます。見えるものは
Colorを持ってます。
なんとなく触ってると、この事実を抜かしていて、あちこちで、gmaeObjectやtransformを
メンバ変数にいれて保存してしまいがちですが、
buttin1.gameObject
buttin1.transform
text1.gameObject
text1..transform
の様に取り出せるので、早いうちに、基本的な構造を理解しておくと
早めに中級者になれるので押さえておきましょう。
Resourcesフォルダの特長
Resourcesフォルダに画像やムービー、音声などを入れておくと、シーンがロードされたタイミングよりも
後にデータを読み込んだり、出来る事が最大の特長で、Resourcesフォルダ以外のフォルダに入っている
アセットデータ(リソースデータ(画像や音声))は、ロードできません。
そして、もう一つの特長として、UnityはResourcesフォルダ以外のフォルダに画像を大量に登録していたとしても
最終的に使わない画像や音声は、実行ファイルに含まれない様になっていますが、Resourcesフォルダ内に
登録した画像は、その後一度も読み込まれることが無くても、実行ファイルには含まれます。
当然、読み込まなければ、メモリが圧迫されることはありませんので、メモリの心配はありません。
TortoiseSVNで管理しないファイルやフォルダを設定する(無視リスト)
1. TortoiseSVN の管理フォルダ内で右クリックし、TortoiseSVN →プロパティを選択
2. 新しいプロパティの追加 → プロパティ名に svn:ignore を入力
3. 下図のようなダイアログが開くので管理したく無いフォルダ名をそれぞれ書く
シーン表示で画面(オブジェクト)が何処かへ行ってしまった場合
Unityエディターでマウスを使って画面をあちこちスクロールしていると、画面全体が
何処かへ行ってしまってどこにあるのか探しても分からなくなってしまう事があるんですね。
スクロールしすぎて画面外へ行った後、縮小しすぎて、極端に遠方までスクロールしてしまうと
原点を完全に見失ってしまうという事なんですが、そういう場合の復帰方法です
「カメラ座標のリセット方法」
①ヒエラルキーでオブジェクトを選択する
②Fキーを押下する
※簡単ですね
iPhone と android と web アプリ と UnityEditorのマウス入力に全て対応する処理の書き方
bool isPress = false;
_tapTrg = false;
_tapRelease = false;
#if UNITY_WEBGL && !UNITY_EDITOR
// WebGL 対応:旧 Input System を使う
if (Input.GetMouseButtonDown(0)) {
_tapTrg = true;
}
isPress = Input.GetMouseButton(0);
_cursorPosition = Input.mousePosition;
#else
var current = Mouse.current;
if(current != null) { // windows マウスが接続されていないとMouse.currentがnullになる
//左クリック
if(current.leftButton.wasPressedThisFrame) {
_tapTrg = true;
}
isPress = current.leftButton.isPressed;
_cursorPosition = current.position.ReadValue();
}
var touch = Touchscreen.current;
if(touch != null) { //android iOS
if(touch.primaryTouch.press.wasPressedThisFrame) {
_tapTrg = true;
}
isPress = touch.primaryTouch.press.isPressed;
_cursorPosition = touch.primaryTouch.position.ReadValue();
}
#endif
//何かタップ
if(_tapTrg == true) {
_tapPressed = true;
}
//左リリース
if(_tapPressed == true) {
if(isPress == false) {
_tapPressed = false;
_tapRelease = true;
}
}
if(_tapPressed){
if(_tapTrg){
_tapKeyCounter = 1;
}else{
_tapKeyCounter++;
}
}else{
_tapKeyCounter = 0;
}
_tapKeyFlag = false;
if(_tapKeyCounter < _tapKeyFirstWait){
if(_tapKeyCounter == 1){
_tapKeyFlag = true;
}
}else{
if( ((_tapKeyCounter - _tapKeyFirstWait) % _tapKeyRepeatWait) == 0 ){
_tapKeyFlag = true;
}
}
webアプリやandroidでフォントが文字化けする
フォントが文字化けをする時は、「Font Asset Creator」でフォントを作り直すと改善する場合があります。
よくあるのがテクスチャが8192x8192に対応していない場合です。(4096にしたら直るというのが良くある)
最初は安全を見て、大きめの高画質で作っておくというのはいい事ですが、フォントデータは結構大きいので
このFont Asset Creatorでギリギリにチューニングするというのは結構大事な工程になります
Android端末を用意する
開発用アンドロイドの設定
Androidのデバッグ機能を有効にする
「設定」→「デバイス情報」→「ビルド番号」の所を 6~7回タップ
すると 「設定」→「システム」→「開発者向けオプション」が表示されます。
※これはメニューが表示されるだけで開発者向けの機能がオンになったわけではありません
USBデバッグを有効にする
「設定」→システム→「開発者向けオプション」→「開発者向けオプションを使用」をオンにする
「設定」→システム→「開発者向けオプション」→「USBデバッグ」をオンにする
「設定」→「開発者向けオプション」の「USB接続中 画面を消灯しない」をオン
※「画面を消灯しない」をオンにするかどうかは好き嫌いですが消灯しない方が便利です
USBデバッグを有効にした状態でAndroidを接続すると下記ダイアログが出るので
チェックを入れる
デバイス名をUSBに接続してWindowsに認識させる
設定→接続設定→USBの設定→接続用途→ファイル転送
アカウントを切り替える
アンドロイド端末を使って、開発のデバッグをしていくと、そのうちPlayストアからテスターとして
アプリをダウンロードしたり、一般ユーザーとしてアプリをダウンロードしたり、Unityから
直接アプリをインストールしたりすることになります。
テスター登録されたアカウントでプレイストアにアクセスしダウンロードしようとすると
クローズテストとして公開されたバージョンのアプリがダウンロードされます。
通常のアカウントでプレイストアにアクセスしダウンロードしようとすると
製品版公開されたバージョンのアプリがダウンロードされます。
ここで注意しないといけないのが
製品版のバージョンが1.2でクローズテスト版のバージョンが1.3の場合
テスター登録されたアカウントでダウンロードしようとするとプレイストア上の表示は
1.2と表示されます。つまり、テスター登録していてもプレイストア上の表示はパッと見
製品版に見えるという事です。(これテスターあるある)
それでは、アカウントを切り替える方法ですが
1. プレイストアアプリを起動する
2. 画面右上の「googleアカウント」アイコンをタップ
3. アカウント名の右横の三角ボタンをタップ
4. 切り替えたいアカウントを選択(もしくは別のアカウントを追加)して
テスター用アカウントや通常アカウントに切り替えておきます。
5.その状態でアプリを検索、又はクローズテスト用のリンクをタップして
アプリをダウンロードインストールします。
6. ダウンロード後にアプリの情報を見れば、例えばテスターアカウントで
ダウンロードすれば、クローズドテスト版のバージョンが確認できると思います
Android 起動時に飛ぶ
Unityには、アプリ起動時に画面をどうするかの設定があります
Edit > Project Settings > Player > Resolution and Presentation > Default Orientation
という設定があります。そして設定のデフォルトが
Auto Rotation
となっているのですが、このままにした場合、アプリ中の画面を縦画面固定や
横画面固定にしていると不具合が起きる場合がある様です
アプリが起動時に縦画面を想定しているなら
Portrait
横画面を想定しているなら
LandscapeLeft
に設定した方がいいです
縦画面固定モードにすると、車のナビや、タブレットのごく一部が非対応端末になる様です
Android 起動時に飛ぶ2
もうひとつ Unityの縦横画面関係の不具合情報
Start() 命令(起動時含む)の中に
Screen.orientation = LandscapeLeft
Screen.orientation = Portrait
を含んでいると、最悪飛ぶそうです。
アプリの実行中に、アプリから縦画面、横画面の切り替え命令を呼ぶときはタイミングに
注意しましょう
Android 起動時に飛ぶ3
これは少し古いGalaxy系のバグですが、Vulkan とOpenGL 両対応していると、Unity起動時に飛びます
(Galaxy A21とか22とか?)
Vulkan を諦めて、OpenGLのみにしたら飛ばなくなります。将来的にはVulkanの方に進む気がするの
ですが、まぁまだわからないですよね。OpenGLで必要十分の気もしますが、将来的にVulkanの時代が
来ていたら、こいつらが厄介な端末という事になりますが、現時点ではVulkanオフで。
Androidの入力誤動作の回避
これは、実際に誤動作が頻繁に起こりやすい問題という事はなさそうなのですが
aab や apk 作成時に 警告が出るので、対応した方がいい問題です
Edit → Project Settings → Player → Other Settings → Active Input Handling という設定があり
デフォルトがBothになっているのですが、Input System Package (New) という方を
選択しておきましょう。
これで警告が出なくなります。開発初期なら、特にこれは先に設定しておく方がいいでしょう
チャットGPT研究とか、いろいろ
トップページにも何かいろいろ書いた方がいいらしいので、とりあえずでたらめに書いていきます
AIは知識ベースで考えているのか論理ベースで考えているのか
AIにこういう質問をします
「クイズです。13日が金曜日のとき、50日は何曜日? 」
AIは、この質問に対して、50日後が何曜日かと答えます。
何度か別のタイミングで試してみましたが、50日後を、答えようとします。そして、曜日も
答えてきます。その場合の答えは一応あってはいるのですが、
最初の問題の意図を正しく書くと
「クイズです。13日が金曜日のとき、もし50日があったとしたら何曜日? 」
です。
このとき何が起こっているかというと(AI曰く)
「50日後が何曜日か?」と解釈して答えるのは、「知識ベース」で
「50日が存在するとしてそれは何曜日?」と解釈して答えるのは「論理ベース」
だと言うのですね。
論理ベースだと、文をそのまま解釈しようとするのだそうです。ならいつもそうしろよ
と思ってしまうのですが。
なぜ知識ベースを優先させてこたえようとするのかについては、AIの知識については、人間の能力に
匹敵するか、それ以上の能力を持ちつつあるのですが、論理的思考力は、人間にはまだまだ
及びません。なのでおそらく、知識ベースの答え方を優先させて答えてくるんだと思います。
SEO対策って何
SEO(Search Engine Optimization:検索エンジン最適化)対策とは、Googleなどの検索結果で自分のサイトを上位に表示させるための施策全般を指します。
平たく言うと、ホームページの知名度を上げたければ、SEO対策を頑張ればいいという事になります。
検索エンジンから権威性のあるサイト(オーソリティ)と見なされやすい指標。としてDRがあります。
DR(Domain Rating)は、主にAhrefs(エイチレフス)というSEOツールが提供しているドメイン全体の被リンク強度を示すスコアです。0〜100の範囲で評価され、数値が高いほどそのドメインが他サイトから多くの信頼性のあるリンクを受けていると判断されます。
DRスコア 評価の目安
0~20 新規・弱いドメイン
21~40 普通レベル
41~60 標準以上、やや強い
61~80 非常に強いドメイン
81~100 世界的に有名なサイト級
歴史的にはDRの方が新しいらしく、古い指標としてDAというのがあります
DA(Domain Authority)は、SEOツール「Moz(モズ)」が提供する独自の指標で、
検索エンジンでの上位表示のしやすさを0〜100のスコアで表したものです。
0~20 新規ドメイン、ほぼゼロの影響力
20~30 小規模サイト、個人ブログなど
30~50 中規模サイト、専門性があるサイト
50~70 大手サイト、強力な被リンクを持つサイト
70~90 超大手、権威の高いサイト
90~100 GoogleやWikipediaなどの巨大サイト
世界的に認知度の高い(60以上の)サイトにしていくには、サイト内のサービスや事業規模そのものが大きく高いものに
なって行く必要があるのですが、0~30程度の段階は、SEO対策をやっているかそうでないかで
大きく結果が異なってしまう様です。中規模の企業でもSEO対策をやらずにホームページの内容だけ
綺麗にしていてもSEO対策をやっていなければ、なかなか検索上位には上がってこないという事。の様です。
地味にすごいFisher-Yates(Knuth)シャッフル
トランプを食ったりするプログラムで52枚のカードをとりあえず4000回くらい交換しておけば
大丈夫かと思って、適当にランダムに交換する処理を書いてしまいがちですが、最も効率的に
シャッフルできるアルゴリズムがあったんです。速度が必要なときは、このアルゴリズムを使うのが
ベストですね。
「Fisher-Yatesシャッフル」のメリットは
1. 完全なランダム性
全ての並び順が等確率で生成されることが数学的に保証されています。
2. 高速(O(n))
要素数がn個でも、シャッフル処理は1回ずつの交換で済むため、時間計算量はO(n) です。
int[] datas = new int[100];
// 0~99 を順に格納
for (int i = 0; i < datas.Length; i++)
{
datas[i] = i;
}
// シャッフル(Fisher-Yates)
Random rand = new Random();
for (int i = datas.Length - 1; i > 0; i--)
{
int j = rand.Next(i + 1); // 0 <= j <= i
// 要素の入れ替え
int temp = datas[i];
datas[i] = datas[j];
datas[j] = temp;
}