C#に関するあれこれをまとめてみた
Unityのあれこれ
Unityに関するあれこれをまとめてみた
- 移動 回転
- テクニック
- Input System
- サウンド
- ライト
- レンダリング
- 解像度
- LineRenderer
- パーティクル
- Shader
- GUI関連
- 便利機能
- 解析
- 負荷軽減
- Object Pool
- Texture
- DOTween
- UniTask
- ファイルIO
- 圧縮 解凍 暗号化
- シングルトン
- エディタ拡張
- Gizmo
- Plastic SCM
- モデル
- アニメーション
- ローカライズ
- ポストプロセス
- Editor Tools
- Unity Gaming Services
- アイテム課金
- SNS連携
- メール
- 広告
- Google Play関連
- エラー、バグ
- メモ
移動 回転
テクニック
- SEGA TECH BLOGクォータニオンとは何ぞや?:基礎線形代数講座
- async/await,disposableを使って素直で読みやすいコードを書く
- Unity の Transform のパフォーマンス最適化まとめ
- 【Unity】C#スクリプトの処理を軽くするための基本テクニックまとめ
- 【Unity】DestroyしたオブジェクトのMaterialがリークする問題への対応
- UnityのAttribute(属性)についてまとめてメモる。
- 【Unity】Game ビューに変数の値を表示する属性を使用できる「OpenWatcher」紹介
- Unity 放置ゲームにおける「日付と時刻変更」基本的な対策
- [iOS]端末の時間を進めることによるチート(不正行為)の現状と、それをお手軽に防ぐ方法
- 【Unity】テクスチャ圧縮フォーマットの決め方(2018年版)
- 【Unity】テクスチャの設定について
- 第5回 手軽にできるUnityC# 高速化テクニック7選【Unity使いこなし術】
- 【Unity】Unity 2021 から標準で使用できるようになったオブジェクトプールの使用例
- Unityでゲームを開発する前に知っておきたかったこと
- 2022 年の Twitter で Unity 開発者から寄せられた最高のヒント集
- ミドルクリックでピボット
- ctrl+Fでヒエラルキースクロール
- エディターで関数を素早くテストする方法
- パーティクルが終了したら自動的に破棄する方法
- 【Unity】Unity エディタが重い・Hold on や Unity is busy が長い時に試すこと 33 選
- Unity Searchを拡張して高度な検索型UIを実現する
- Unity で正確なフレームレートを実現する
Input System
- 【Unity】【C#】(旧)KeyCode と InputSystem.Key の対応
- 【Unity】【C#】InputSystem でマウスのホイール(scroll)取得と (旧)Input との対応
- Migrating from the old input system
- 【Unity】Input Systemでピンチやマルチスワイプを実現する
サウンド
ライト
レンダリング
解像度
- カメラが映すものを低解像度に設定する
- 【Unity】特定のカメラのみ低解像度にする
- 【Unity】カメラ1つでUI解像度を維持し、3D解像度だけを下げる方法
- 一部のレンダリング解像度のみ下げて負荷軽減ができる「RenderTextureCamera」の解説
LineRenderer
- 【動画あり】LineRendererを使ってアニメーション付きの線を描く【Unity】
- 【Unity】ベジェ曲線のテレポート移動を一から作ってみる (1) for Oculus Go
- 矢印模様 (LineRenderer)
パーティクル
Shader
GUI関連
- RectTransformについてのメモ
- #unity RectTransform(Canvas)のAnchrosとPivotの相互関係チートシート
- 現代のモバイルゲーム開発者が向き合うべき ディスプレイ事情と、その対応方法
- SpriteやImageでMaskを使って画像を任意の形に切り抜いて表示する 【Unity】【uGUI】
- 【Unity】UIイベントをスクリプトで簡単に検知する拡張メソッド
- UnityのuGUIとImageとSpriteとスライスについて
- 【Unity】Spriteで9 Sliceを使う
- RectTransfromのスクリプト操作
- 【Unity】TextMesh Proをアニメーションさせる~プログラマ編~
- 【Unity】EventSystemsから受け取った座標をRectTransform.localPositionに設定する方法
- 【Unity】【uGUI】RectTransformUtilityでスクリーン座標をUIのローカル座標やワールド座標に変換する法
- Unity UIのタッチ判定範囲を可視化してみる
- [Unity][uGUI] UIをゲームパッドやキーボードで操作する
- UnityのScrollRectを拡張しよう
- Valentin Simonov touches and UI Slider
- RectTransform の Pivot が Center の位置の座標を取得する
- [Unity] UGI でデバイスごとの画面の比率違いに対応する
- 【Unity】RectTransformのCorners(四隅)のスクリーン座標を取得する(RenderModeにより変化)
便利機能
- Unity - 新機能 カテゴリーの記事一覧 - コガネブログ
- 【Unity】Unity 2020 から便利になった Preset Manager を使ってみる
- 【Unity】Unity 2020.1 新機能 - CS0169 と CS0649 の警告を無効化できるようになった
- 【Unity】Unity 2020.1 新機能 - ゲームオブジェクトやアセットを複製する時の連番の付き方を設定できる
- 【Unity】Device SimulatorがPackageManagerの一覧から降格した件
- テラシュールブログさん作成UnityのAutoSave機能をちょい改変
- Unity開発を高速・快適にするためのメモ
- Unity上で素材をサクッと作成!Metatex/Metameshの紹介
解析
- 【Unity】Memory Profilerでメモリにロードされているオブジェクトを可視化する
- 【Unity】メモリリークを分析するための簡単で強力な方法
- 【Unity】エディタ上でのスクリプト関連の操作でなぜ処理に時間がかかっているのか確認できる「Editor Iteration Profiler」紹介
- 【Unity】Unityプロジェクトをあらゆる観点から静的解析してくれる公式ツール『Project Auditor』の使い方まとめ
- Unity URPでGPU処理負荷を画面に出してみる
- 【無料公開】社内研修書籍『Unity パフォーマンスチューニングバイブル』のPDF公開&オープンソース化しました!
- UnityPerformanceTuningBible
- Unity 2021 LTS におけるプロファイリング:何を、いつ、どのように行うか
- パフォーマンスの計測 再入門 〜Unity 2020版〜(5月28日号) - Unityステーション
負荷軽減
- Unityで始める!負荷削減
- モバイルゲームのパフォーマンスを最適化しよう:専門家が語る物理演算、UI、オーディオの設定に関するヒント
- ShaderVariantCollectionを良い感じに生成できないか…
- 【Unity】AssetBundleからモデルをロードする際の最適化ポイント
- モバイルゲームのパフォーマンスを最適化しよう:専門家が語るグラフィックスとアセットに関するヒント
- グラフィックスパフォーマンスの最適化
- グラフィックスのパフォーマンスとプロファイリング
- Unity+スマホで3Dゲーム開発最適化するための考え方
- ビルドサイズを削減するための提案
- グラフィックスパフォーマンスの最適化
- 最適なパフォーマンスのためのモデル作成
- グラフィックスのパフォーマンスとプロファイリング
- カメラの使い方を工夫してゲームのパフォーマンスを最適化する方法:パート 2
- Unityパフォーマンスチューニングで簡単にできそうな部分まとめ#1
- Unityでシーンの容量を削減する方法 (モデル編)
Object Pool
- Unity 2021から利用できるUnity標準のオブジェクトプールについて
- 【Unity】オブジェクトプール(Object Pool)の使い方!Unity2021から標準で使えるぞ
- 【Unity】カメラ1つでUI解像度を維持し、3D解像度だけを下げる方法
Texture
- モバイルゲームのパフォーマンスを最適化しよう:専門家が語るグラフィックスとアセットに関するヒント
- 【Unity】テクスチャ圧縮フォーマットの決め方(2018年版)
- 【Unity】テクスチャの設定について
- 【Unity】Texture Format
DOTween
- DOTweenの教科書
- DOTweenで魅力的なゲームUIを作る
- HowTo_DOTween.md
- DOTweenのイージング一覧を世界一詳しく&分かりやすく説明する
- [Unity] DOTweenを使ってUI要素を点滅させる
UniTask
- async/await,disposableを使って素直で読みやすいコードを書く
- コルーチンを全てUniTaskに置き換える
- UniTask v2 – Unityのためのゼロアロケーションasync/awaitと非同期LINQ
- 非同期処理にtry-catchを何度も書きたくない...!UniTaskに対する例外処理のアイデア
- UniTaskを使ったポップアップの作成
- await using を Unity の自作ダイアログ表示に利用してみる
- UniTask機能紹介
- UniTaskでレッツ非同期!
- 【Unity】UniTask Coroutineとの違いとキャンセル処理の挙動
- 【C#】複数のCancellationTokenを合成したCancellationTokenSourceを生成する
- 【Unity】UniTaskに善玉例外を投げよう!CancellationToken.ThrowIfCancellationRequested()
- async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス
- C#のasync/await再考, タイムアウト処理のベストプラクティス, UniTask v2.2.0
ファイルIO
圧縮 解凍 暗号化
シングルトン
- もっと楽なシングルトンの実装
- [Unity]Generic Based Singleton for MonoBehaviours完全版(?)
- 【第 2 回 cocone tech talk・後編】Singletonを使わないUnityを用いたApplication開発【イベントレポート】
- Unityでシングルトンを使わずにシーン間でデータを保持する。
エディタ拡張
- UnityのInspectorを拡張する。
- 【Unity】【エディタ拡張】SerializedObjectの勘所をまとめてみる
- エディター上で選択しているオブジェクトを取得したり、任意のオブジェクトを選択したり【Unity】【エディタ拡張】
- 今さらだけどOverlaysを触ってみた】
- Unity 2021.2のSceneViewで色々な操作を行う新機能、Overlayについて】
- Hierarchy上で非アクティブなオブジェクトをエディタ上で検索する拡張【Unity】【エディタ拡張】
Gizmo
Plastic SCM
モデル
アニメーション
ローカライズ
- プロ必見!最新ローカライズ機能徹底解説 - Unityステーション
- [Unity]ローカライズ拡張例
- UnityのLocalizationPackageを触ってみた
- https://light11.hatenadiary.com/entry/2021/12/02/200205
- Smart String
- Default source
- Dictionary source
- Unity - Localization を使ってみる - Scripting
- 【Unity】LocalizationのLocal Variablesをスクリプトから設定する
- Unity Localizationを使ってプロジェクトをローカライズする その6(スクリプトからテーブルデータを参照する)
- 【Unity】【Localization】スクリプトで操作する方法総まとめ
ポストプロセス
- Unity マニュアル ポストプロセス
- 【Unity / Post Processing】Color Gradingを理解する
- 【Unity】URPのVolume(=ポストプロセス)の使い方!ゲームの見た目をワンランクUPさせよう
- 【Unity】光るゲームオブジェクトの作り方!美しい「発光表現」をゲームに導入しよう
- 【Unity】Universal Render Pipelineでポストエフェクトを適用する
Editor Tools
- Create custom Overlays
- ToolbarOverlay
- Unity 2021.2のSceneViewで色々な操作を行う新機能、Overlayについて
- Unityエディタの左上に独自の機能を追加出来るEditorTool【Unity】【エディタ拡張】
- Unity2019.1から導入されたEditorToolの紹介
Unity Gaming Services
- Unity Cloud Save でプレイヤーデータのクラウド保存しよう / xrdnk-yokohamaunitylt9
- Unity Gaming Servicesを利用する
- Unity Authentication を用いて匿名サインイン処理を行う【Unity Gaming Services】
- Cloud Save
- Unity Cloud Save β を用いてプレイヤーデータをクラウドサーバ上で保存・読込・削除する【Unity Gaming Services】
- Unity Cloud Content Deliveryでサウンドデータを追加ダウンロード対応する with ADX
アイテム課金
- [Unity] IAP でAndroidアプリ課金を実装(評価編)
- 【Unity】Unity IAPのCodeless IAPを用いて非消費型(買い切り型)のアプリ内課金を実装する(iOS・Android)
- UnityIAPで課金を実装する (個人開発者向け)
SNS連携
- ゲームにツイート機能をつける(5/3 更新: WebGL ビルドに対応)
- 【Unity】Twitterボタン設置とツイートの報酬付与
- Unityからネィティブプラグインを使いTwitterに投稿して、ツィートしたら何かを行う
- Package Visibility (ユーザーがインストールしているアプリの可視性)に関する対策
- How to Reload Native Plugins in Unity
- Unity でネイティブプラグインの実行時更新を可能にする PatchLibrary を使ってみた
- 特定のアプリがインストール済みかチェックする
- [iOS]Deeplink(Custom URL Scheme)を使ってアプリからアプリを起動する
- auycro/PlistPostProcess.cs
メール
- 【ハルシオンブログ】Unityアプリからメールを送る方法。
- OS名などの端末情報を付けたメール機能【Unity】
- Unityをサーバーに繋いでメールを送ってみる
- PHP プログラミング解説 メールの送信
広告
Google Play関連
- Android App Bundle(AAB)が150MBを超えてしまった場合の対応
- Unity の Addressables 使用し Google Play Asset Delivery に対応する
エラー、バグ
- 俺のスマホで動かすと世界最強のUnity製自作Androidアプリが海外ユーザの端末だと正常に動作しなくなってバグ取りに追われるも、不具合がおきる端末が手元に無いので無双苦労する話
- 【Unity】Google Play App Signingに関するメモ
- Unity : Android リリースへの道 2023 Google Play Console 有効な App Bundle をアップロードしてください!APIレベルが!64ビット要件に準拠していません / 広告ID / デバッグシンボル / 難読化解除 / 公開申請
メモ
【macOS High Sierra(10.13.6)での開発時】 Unity DevOpsのHigh SierraサポートはVer11.0.16.8108が最終。
コーディングのあれこれ
コーディングに関してあれこれまとめてみた
VS Code
- VS Code を使用した Unity 開発
- UnityとVScodeで開発するための環境構築【2021年】
- UnityでVisual Studio Codeを使用できるようにするまでの手順
- オレオレneovim環境構築&設定
- VSCodeでなるべくマウスを使わない開発環境をがんばる
- VSCodeでC#開発環境整えちゃう(グッバイVisual Studio)
- VisualStudioCode(VSCode)でUnity開発をする際のフォーマッターの設定方法
- 2021/4 Visual Studio Code のおすすめ設定 (settings.json)
- editorconfig for VSCode でコーディングルールを 統一する【C#】
- VSCodeでUnityの補完が効かなくなったときの解決方法(OmniSharpの問題)
- Vim
vim
- VSCodeで始めるVim
- vim コマンド集
- よく使う Vim のコマンドまとめ
- Visual Studio Codeの機能拡張「Vim」の為のメモ
- VimmerのVimmerによるVimmerのためのVSCode環境構築(Part1)
vs & vim
Addressable Asset Systemに関するあれこれ
Addressable Asset System(Addressables)に関してあれこれまとめてみた
基本的な参考サイト
- マニュアルUnity Addressables
- Addressables を使用してコンテンツ管理を簡略化する
- 【Unity】僕はそろそろResourcesフォルダを卒業しようと思う
- Addressable Assets Systemをちゃんと導入するための技術検証まとめ
- とりあえずAddressablesAssetSystem使ってみたい人向け導入解説2! S3を使ってアセットを配信してみよう
- とりあえずAddressablesAssetSystem使ってみたい人向け導入解説2! S3を使ってアセットを配信してみよう
- Unity - Addressable Assets System yotiky Tech Blog とあるエンジニアの備忘録
- 【Unity】Addressableのローカルサーバーを使って、AssetBundleをダウンロードする動作を確認する
AssetBundle関連
- 今更誰も教えてくれない、Unityにおけるアセット読み込みについての基礎知識
- AssetBundleを完全に理解する
- Addressable Asset System がワケ分からないのでわからなかった点を調査する
拡張関連
- 【Unity】Addressable Asset System で全アドレスをクリップボードにコピーするエディタ拡張
- 【Unity】Addressable Asset System の BundledAssetGroupSchema.AssetBundleProviderType を変更するエディタ拡張
- Addressable Assetsのアドレスとラベルを管理する定数クラスを自動生成する【Unity】【Addressable Assets】【エディタ拡張】
- 【Unity】【Addressable】Unity Addressable Importerでアドレスの設定を自動化する
- AddressableをResourceと同名で自動的に命名する
- 【Unity】Addressable Asset Systemの登録自動化コード公開(ファイル移動によるグループ・ラベル再設定対応版)
- AddressableをIDisposableで管理する
- 【Unity】AddressableAssetSystemのAssetReferenceで、一覧表示するアセットを任意の型に制限したい
- サイバーエージェント、UnityのAddressableアセットシステムにおけるアドレスやラベルの付与を自動化するツール「Smart Addresser」のOSSを公開
分析
運用関連
- 最適化の最前線から:Addressables を使ってメモリを節約する
- UnityのAddressablesのRemoteコンテンツ運用 - ResourceProviderのカスタマイズ
- UnityのAddressablesを使ってサーバーにあるアセットバンドルを使う
その他
- 【Unity】AddressableAssetSystemメモ
- 甘くて苦いAddressable Assets System
- 【Unity】【Addressable】Addressableの絡むテストを書く方法と方針の一例
- 【Unity】Addressable Asset System ですべてのラベルを取得する方法
- [unity]Addressable Asset System(AAS) アドレス(ラベル)名で解放したい
- Addressables.DownloadDependenciesAsync() によるダウンロードを、アセットバンドルごとに分けて行う
メモ
チェック項目
- Asset Import OverridesをNo Overrideに
- AddressableAssetSettings->Content Update->Build Remote Catalogにチェック
- Addressables Group->Play Mode Scriptのモード
- Addressables Profiles
- AddressGroupのBundleMode
Addressables Hostingの切り替えができない
再起動
Android関連
WebView関連
- WebView でのウェブアプリの作成
- [Android] WebView でウェブアプリの作成
- WebViewを使ってみよう(Android, Java)
- 【はじめてのAndroidアプリ開発】アプリ内でWebページを表示・操作する方法
※リンクタップ時に同一ドメインのみアプリ内で表示したい時の参考 - WebViewの設定
- WebView で Web Storage / Web SQL Database を利用する設定
- Chromeカスタムタブ
Layout関連
Push通知
Google Play関連
- 【法人編】YouTube 米国税務情報(W-8BEN-E)の入力手順
- アドセンスの「税務情報」を提出する方法を徹底解説【ブロガーもYoutuberも一緒】
- 【PlayStore】アメリカ合衆国の税務情報の入力ガイド