いんでぃーづ

ゲームメインのブレブレブログ。ゲーム,Unity,デザイン,UI/UX

C#

Unity ECS : Jobで攻撃の総当たり判定を行うときのテンプレっぽいもの

現在ECSでRTS(タワーディフェンス)を作っているのですが、攻撃の当たり判定と敵の当たり判定を総当たりで判定するのにちょっと手間取ったのでメモ。

Unity ECS : メッシュ表示と物理挙動が有効なWorldを自作する

ECSを使うならWorldは自作すべきと言い切れます。 なんでかというと、ずっとAndroidゲームの起動時間が最低でも5秒くらいかかっていて短縮するためにいろいろ試していたのですが、 結局ECSの デフォルトワールドを無効にしただけで1秒で起動するように な…

Unity ECS : JobComponentSystem が not run になる場合はEntityの状態を確認しよう

JobComponentSystem を使っているときに、OnUpdateが一回だけ呼ばれて以降のループが止まる という現象に悩まされたのですが、どうも仕様っぽい動作だったのでメモ。 not run になっている

Unity : ECSのTransform関係の仕様を理解するためのリファレンス

ECSのリファレンスとして使えるの情報がブログとかしか見つからなくて困っていたのですが、公式ページでTransformの解説をしているページをやっと見つけました。 docs.unity3d.com とりあえず各章を流し読みしながら図を追うだけでも勉強になります。 ・今回…

Unity : PlayMode 中の変更をスクリプトでプレハブに保存、更新する

PrefabUtility 使えば楽勝やろ(鼻ホジー)と思ってたらハマった。 さてどうやろう PlayMode中にシーン内のインスタンスの元プレハブを取得する PlayMode中のプレハブ関係 解 : SaveAsPrefabAsset

テスト用に用意したシーンを UnityTestRunner で実行する

いつも悩ましい Unity のテストですが、Play Mode でテスト内容を調整しつつ、そのままシーンを Unity Test Runner で実行 できないかなと試行錯誤した結果なんとか実現できたのでメモ。 PlayerTest ディレクトリを作成 テスト用シーンを作成 スクリプトを作…

Unity : VSCode によく使うコードを登録して一発入力

いわゆる スニペット というやつで、定型文を登録しておいて数クリックで書ける機能です。

Unity : MonoBehaviour, ScriptableObject をJSONファイルに保存する [C#]

まあ、ごくたまになんですけど、Unityをバージョナップしたりアセットをインポートしなおしたときに、シリアライズされたデータがふっとぶ時があったんです。 けっこうショックがデカいんですよね。いろんなデータをそこに入れてたりすると。 こんなときバッ…

Unity : プレハブの値をエディタスクリプトから変更・保存する

エディタ拡張書いたときに、プレハブの値を読むのは以下の記事の方法でできる。 indie-du.com 読んだ上で 書き換える には一工夫必要になる。

Unity : 自作エディタウインドウにプレハブを擬似シリアライズ

エディタウインドウを自作したときに、EditorGUILayout.ObjectField で受けたプレハブ情報を保存しておく場合の方法。

Unity : グローバルなイベント通知の仕組み(EventBus)を自前実装する [C#]

例えば、敵を倒したタイミングで、プレイヤー、UI、他の敵が何らかのアクションを起こしたい場合、どのような経路でイベントを通知するか悩みます。 敵を各オブジェクトが監視したりするのは、参照が絡み合って管理がめんどうくさいです。 そこで便利なのがE…

Unity : ゲーム性を持たせるAnimationCurveの小技3選

こういったウインドウを見たことがあると思いますが、これは AnimationCurve 型のメンバ変数を持つことで、インスペクタから設定することができます。 AnimationCurve - Unity スクリプトリファレンス public class AnimationCurveForRandom : MonoBehaviour…

Unityエディタウインドウを自作する

エディタウインドウ作成方法をよく忘れるのでメモ

Unity : プレハブに保存した値を Instantiate せずに直接読む

プロジェクトフォルダにあるPrefabから、Instantiate せずに各種コンポーネントを取得したかったメモ。

Unity : ScriptableObject解体新書(?)

共有データ保存になんとなく使っていた ScriptableObject について、いろいろ研究してみました。 そして、今までいろいろ間違った使い方をしていたことに気づきました。

UniRx付属のObjectPoolが割とガチで使える件

UniRxの中に知る人ぞ知る(?) UniRx.Toolkit というネームスペースがあり、この中に ObjectPool というクラスが定義されています。 これは 使用済みのGameObjectをDestroyせずに保存(プール)しておき、後で使い回す ことでパフォーマンスに優しいプログ…

MonoBehaviour のメソッドをオーバーライドする [Unity , C#]

C#でプログラムを組む上で避けて通れないのが 継承 ですが、Unity特有のMonoBehaviourクラスの派生クラスを さらに継承 してクラスを作成することができます。 Start関数やUpdate関数をオーバーライド することで、基本処理を共通化することが可能です。

Unity : 連番画像を動画として表示する

今回は、ファイルシステムに保存した画像を、コマ送り動画として表示させてみます。

Unity : テキストファイルをメンバ変数として扱う [C#]

TextAssetというクラスを使うと、テキストファイルを扱えます。 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class TextSerializeTest : MonoBehaviour { // テキストファイルをメンバ変数に …

Unity : 錯視での瞬間移動を表現する

先日試したモニュメントバレーの件でもういっこ。 錯視で離れている場所がつながり、さも最初から道があったかのように移動できるギミックをためしました。 古くは無限回廊からある手法ですね。

Unity:重力に逆らい、球面にそって垂直に歩かせてみる

最近 モニュメントバレー [iOS, Android] という錯視パズルゲームを遊んでまして、 おしゃれでよくできてるなあと感嘆しておりました。 で、錯視もさることながら、プレイヤーの姫が重力に逆らい垂直に壁を歩いていったりするのです。 今回はそれをどうにか…

UnityでiOSのNotification:ローカル通知編

モバイルに通知機能あれど取り組む暇はなし。 その中でも導入が比較的に簡単な、iOSのローカル通知の使い方をまとめました。

知らないと損する! Unityで使えるC#の配列リスト型4種類

各種データをまとまりで保存しておく場合、まっさきに思いつくのが配列ですが、Unityでは(というか.NETでは)用途別に便利な型を使うことができます。

UniRxでアドベンチャーゲームのテキスト表示を実装

最近UniRxにハマっていまして、今回はアドベンチャーゲームなど汎用的に使えるテキストシステムをUniRxで書いてみました。 以下のような動作になります。 かなり"それっぽく"見えるでしょう。

あのゲームを雑に再現する:アングリーバード

先駆者をリスペクトしつつありがたくパクらせて 教材とさせていただく企画第二弾。 今回はアングリーバードを再現します。

AndroidプラグインからUnityの関数を呼び出す - UnitySendMessage

以前の記事でAndroidのプラグインの関数を呼び出す方法を書きました。 逆にAndroidからUnityのメソッドを呼び出したい場合、もう一手間必要となります。

記事一覧・プログラム、スクリプト

Unityプログラムtips Invoke , Coroutine , SendMessage で文字列を使わない方法 - いんでぃーづ Unity : コライダのOnCollisionEnter, OnTriggerEnter が呼ばれない、反応しない - いんでぃーづ Unity : レイヤーマスク値のつくりかた - いんでぃーづ Unity…

C#のEnumのtips

System.Enum クラス のメソッドを使うことで、いろいろ便利なことができます。

Unity : ロード済みシーンの切り替えを一定時間待つ

普通にシーンをロードしてしまうと、完了した瞬間に新しいシーンに切り替わってしまいます。 たとえば、バックグランドでシーンをロードしつつ、少なくとも1秒以上はなにかしら画像を表示したい、というとき 今回紹介するテクニックを使ってみてください。

Unity : モバイル画面の方向を固定、あるいは変化を検出

Android, iPhoneなどで動かす場合には、端末の方向を考慮してGUIなどを構成する必要があります。 その場合、あらかじめ向きを固定してしまうか、画面の回転を検出して補正を行いましょう。


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。