dasukoの技術ブログ

現役エンジニアのブログです。

C#

【Unity】MenuItemでショーカットキーを設定する

はじめに UnityにはMenuItemというメインメニューとインスペクターのコンテキストメニューにメニューアイテムを追加することができるAttributeがあります。 MenuItemの公式のドキュメントはこちら UnityEditor.MenuItem - Unity スクリプトリファレンス Menu…

【Unity】TryGetComponentが便利

はじめに C#ではTry◯◯みたいなメソッドがあり、取得できたのみ処理したい場合に 簡潔に書くことができます。 詳しくはこちらを見てみるといいと思います。 文字列が数値を表しているかどうかを確認する方法 - C# プログラミング ガイド | Microsoft Docs int…

【C#】DI(Dependency Injection)を使ってみた!(Unityでの実装例あり)

はじめに 今回はDI(Dependency Injection)についてまとめてみたいと思います。 Dependency Injectionとは Dependency Injectionの意味は依存性の注入です。 Wikipediaにはこのようにあります。 依存性の注入(いそんせいのちゅうにゅう、英: Dependency inje…

【Unity】SerializeReferenceを使ってみた

はじめに 今回はSerializeReferenceを使ってみたいと思います。 ドキュメントはこちら Unity - Scripting API: SerializeReference SerializeReferenceとは フィールドをシリアル化する方法として、SerializeFieldAttributeを追加するという方法があります。…

【Unity】EditorでCoroutineを使う方法!Editor Coroutines

はじめに インストール 実装 参考 はじめに 今回はEditor Coroutinesをご紹介します。 Editor拡張でCoroutine(コルーチン)を使いたい!ってことがたまにあるかと思います。(HTTPリクエストを実装するときとか) このパッケージを使えば、Editor上で簡単に…

【Unity】カメラの切り替えの実装 | 実装パターン3つ紹介

はじめに Unityは3dゲームを容易に開発することのできるゲームエンジンです。 3dゲーム開発ではカメラを複数配置して、それらを切り替えるといった表現をすることが多くあります。 今回はカメラの切り替え方法についてご紹介します。 どのようにカメラが選ば…

【Unity】ゲームデータの保存を実装してみる

はじめに まずは簡単に実装してみる 少しだけ拡張してみる 具体的な実装 最後に 参考 はじめに 前回このような"ゲームデータの保存と読み込み方法"に関する記事を書きました。 dasuko.hatenadiary.jp 今回は実際に実装してみたいと思います。 まずは簡単に実…

【Unity】ゲームデータの保存と読み込みの実装方法

はじめに セーブデータ実装の選択肢 PlayerPrefsに保存する PlayerPrefsとは ファイルに保存する 最後に 参考 はじめに 今回はゲームデータの保存(セーブ)と読み込み(ロード)の実装方法をご紹介したいと思います。 今回テーマとするセーブデータとは、サ…

【Unity】Unity標準のJsonUtilityを使ってシリアライズ

はじめに UnityでJSONデータをシリアライズ、でシリアライズといった操作をする時に、どうやって実装されていますか? Unityには標準でJSONデータを操作するための機能があります。 それがJsonUtilityです。 今回はこのJsonUtilityについてご紹介します。 公…

【Unity】オブジェクトの移動ロジックについて!移動の実装方法を3つご紹介

はじめに Positionを加算する Rigidbodyのvelocityを変更する 力を加えて移動させる まとめ 参考 はじめに ゲームを作る時に物体を動かすということはよくあることだと思います。 プレイヤーや敵、ギミック… 今回は物体の動かし方をいくつかご紹介したいと思…

【Unity】当たり判定を実装する

はじめに GameObjectにColliderを設定する Rigidbodyコンポーネントとは Colliderコンポーネント BoxCollider SphereCollider CapsuleCollider GameObjectにコンポーネントを追加する スクリプトを書く 当たり判定を取得するためのメソッド OnCollision OnTr…

【Unity】Firebaseの機能まとめ

はじめに Firebase Authentication Firebase Analytics Firebase Crashlytics Firebase Remote Config Firebase Storage Firebase Cloud Firestore 参考 はじめに UnityでFirebaseを使うととても便利だということをぜひお伝えしたいです!!! Firebaseを使…

【Unity】Firebase Cloud Firestoreを実装してみた

はじめに 今回はUnityでFirebase Cloud Firestoreを実装してみたいと思います 公式ドキュメントはこちらです。 Cloud Firestore | Firebase Firebase Console上での画面はここです。 Firebase Cloud Firestoreとは Google の柔軟でスケーラブルな NoSQL クラ…

【Unity】Componentの操作まとめ

はじめに 前提条件 Componentの追加 EditorでGameObjectに対してComponentを追加 ScriptからGameObjectに対してComponentを追加 Componentの取得 Componentの削除 EditorからGameObjectのComponentを削除 ScriptからGameObjectのComponentを削除 Componentを…

【Unity】メインスレッドで処理を実行する方法

はじめに メインスレッドで処理を実行する方法 UniRx 自作する まとめ 参考 はじめに Unityではメインスレッドでしか実行できないAPIが多く存在します。(というかほとんどそう) しかし、パフォーマンスを向上させるためには、マルチスレッドプログラミングが…

Chain of Responsibilityパターン

はじめに Chain of responsibilityパターンとは Decoratorパターンとの違い 実装上の注意点 Class図 実装サンプル まとめ 参考 はじめに 今回はChain of Responsibilityパターンについてご紹介します。 Chain of responsibilityパターンとは Chain-of-respon…

【C#】マルチスレッドプログラミングの手法

はじめに 別スレッドで実行する手法 Task ThreadPool JobSystem まとめ はじめに 筆者は主にC#をUnityで使っているので、Unityでマルチスレッドプログラミングをする時におすすめな方法をご紹介します。 スレッドを複数使うことで処理を分散でき、パフォーマ…

【C#】Taskについてまとめてみる

はじめに C#ではTaskを使えば簡単に非同期処理を実装することができます。 ちなみに筆者の環境はUnityなので、「Unityならメインスレッドで基本実装すればいいじゃん」と思っている方にも ぜひ最後まで読んでもらいたいと思っています。 ちなみにFirebaseのU…

【Unity】ECS(Entity Component System)について

はじめに 今回はUnityのEntity Component System(以下ECS)についてまとめたいと思います。 ECSとは ECSはUnityでデータ指向設計を行うためのシステムです。 ECSは以下の3つの要素から構成されています。 ID(Entities) - ゲームやプログラムを構成する要素、…

【Unity】Firebase Storageを実装してみた

はじめに 今回はFirebaseのStorageをUnityで実装したみたいと思います。 公式ドキュメントはこちら Cloud Storage for Unity を使ってみる | Firebase Firebaseコンソール上のStorageの画面はこんな感じです。 ファイルのアップロード Storageにファイルをあ…

【Unity】Job Systemを使ってみた

はじめに Unity C# Job System を利用すると、Unity とうまく相互作用する マルチスレッドコード を書くことができ、正しいコードを書くことを容易にします。 C# Job System - Unity マニュアルより引用 公式ドキュメントにあるようにC# Job Systemはマルチ…

【Unity】Firebase Remote Configを実装してみた

はじめに UnityでFirebaseのRemoteConfigを実装してみたいと思います。 公式ドキュメントはこちら Firebase Remote Config for Unity を使ってみる Firebaseコンソールから設定を行います。 こんな感じでパラメータのキーと値を設定できます。 条件とかも定…

【Unity】Firebase Crashlyticsを実装してみた

はじめに 今回はFirebaseのCrashlyticsを実装してみます Crashlyticsとは Firebase Crashlytics は軽量なリアルタイムのクラッシュ レポートツールで、アプリの品質を低下させる安定性の問題を追跡し、優先順位を付け、修正するのに役立ちます。Crashlytics …

【Unity】Firebase Analyticsを使ってみた

はじめに Unity 用 Google アナリティクスを使ってみる | Firebase こちらを参考に進めました。 前回のAuthの時にFirebaseコンソールでのアプリの登録については説明したので、 まずはFirebase Analyticsをプロジェクトへインポートするところから説明します…

【Unity】Firebase Authenticationを使って認証を実装してみた

はじめに まずはUnityパッケージをダウンロードしてUnityプロジェクトにインポートします。 次にFirebaseのコンソールにログインして、アプリ情報を登録してgoogle-services.jsonをダウンロードして、 Assets配下に任意の位置に配置します。 Authの有効化 Fi…

【Unity】ThreadPoolを使ってみた

Unity(C#)でC#標準ライブラリのThreadPoolを使ってみました。 UnityのAPIのほとんどはメインスレッドから実行する必要があるので、注意が必要ですが、 重たい処理を実行するときは、できればスレッドを使いたいです。 そんな時にTaskを使うのもいいですが…