Unity
今回のunity1weekは少し頑張りすぎた気がしています。赤兎です。 redrabbitnet.hatenablog.com 前回の記事で実装出来た内容について羅列していますが、今回の記事では所感や掛かった時間や手間について言及していければと思っています。 1. 街モデル作成につ…
TheQuakerThumbnail 機能について大雑把にまとめると、実は初心者であっても熟練者であっても実装出来る機能に大差はないんじゃないかと思ってしまった赤兎です。 そんなわけで、今まで学習してきた技術はこんな風に今回のゲームに生かされているんだという…
さて、Unityの初心者さん向けの記事を改めて書いていきます。 しかし、書いた文章にわからない用語があっては調べなおすのが面倒です。 よって、粗方の用語を載せておこうと思います。 ここでは基本となる操作画面について紹介します。 Gameビュー Sceneビュ…
Animationの実装をするうえでプレビュー機能ちゃんと使えていますか? そんなわけでUnityAnimationの学習を頑張ってます。赤兎です。 今日紹介するのはInspectorビュー下に表示されるAnimationPreviewについてです。 しっかりと使えればAnimationを実装する…
UnityにおけるAnimation周りに関する知識についてまとめておきたいと思います。 初めに断っておくと、本記事は実装上の問題を解決するものではありません。あくまでも知らないと何処を学べばいいかすら分からないので知っておきましょうという無知の知を得る…
制作中のゲームにおいてコンボが続くごとに音程をドレミファソラシドと上げる実装を目指してピッチを変更するスクリプトを書きました。 私が最初に書いたプログラムは pitch = x * combo のような単純なもの。 コンボに比例してピッチが上がっていけば、高音…
動作環境 Unity2020.3.21f1 概要 VideoPlayerによるmp4動画のフレーム再生を行います。 再生方法はURLを指定するものとします。 コードについて 基本的なフレーム送りはVideoPlayer.StepForward()で行えます。これは1フレーム進めて描画するための関数です。…
Unityを使う上で欠かせないConsoleビューはデフォルトで2行ずつ表示になっています。これを1行にする方法を紹介します。 しかし、このログをよく見るとUnityEngine.Debug.Log(object)が表示されていることがほとんどで正直要らない気がする。スペースは有…
NavMesh height slope radius、そんなワードで検索をかけているあなたに伝えたいNavMeshの分かりにくい特徴について少しだけ触れます。 こんなところで時間を費やしたのは僕だけでしょうか、いやそんなはずはない。 僅かな気になりポイントを書きます。 まず…
Genericなインターフェースって実装しようとするとどうなるんだろうと思ってやってみました。JetBrains Riderによる補完された答えは以下の通りです。そんな定義の仕方があるんだなーって参考になったのでご紹介です。 public interface ITestInterface<T> { T </t>…
座標移動の実装を考える時、度々「もっと良い方法があるんじゃないか」となることが多いため、まとめていこうと思う。 考慮すべき事柄 実装内容によってベストな実装は異なると考える。よって、考慮すべき事柄もまとめておく。 1. Y軸移動が存在するか 2. 障…
モバイルアプリ制作において画像やテキストの共有、SNSシェアを実装してくれる力強いアセットであるNatShare。お世話になっております。 こいつを使っているときにiOSビルドエラーが出たため共有しておくこととします。 実際に出たエラーはこちら Undefined …
コード Reset() { GetComponent<Text>; } 使い方 Start関数等と同じようにMonobehaviour継承クラスで関数を実装して使います。 GetComponentはStart内部で呼ぶには重い!とかSelializeFieldを設定したけどドラッグで設定しなければならない時、かなりの効率化が見</text>…
Enumを文字列の配列として使う Enum.GetNames(typeof(MyEnumType)).ToList() よく使うのでメモっておこうシリーズ。 リソースファイルの名称等をenumにまとめた上でアクセスしたりしやすい。
最近流行りのPlayFabについて知見が溜まってきたので共有したいと思います。 本記事はPlayFabを導入しようか迷っている方に向けて、導入のメリットと注意点について紹介できればと思っています。 また、既に利用している人は、注意点の項目を読むことで、意…
前提 以下の点を理解していない場合は、Addressableを導入するには早いかもしれません。 > Resources.Loadを使ったことがあること > Coroutine等、非同期処理について理解していること また、導入のための手順が比較的多いので、解説用の画像は以後追加でき…
MonoBehaviourとは MonoBehaviourはUnity上でクラスを生成すると自動的に継承されるクラスである。 これによってStart()やUpdate()等の関数が使える。 逆にコンストラクタが使えなくなるため、Awake()等で代用する必要がある。 どんな時にMonoBehaviourを継…
要件 RenderTextureに対してComputeShaderでポストエフェクトをかけていきます。 例として描画される景色をRGBに分割したエフェクトをかけていきます。 レンダリングパイプラインをあまり意識せず、シンプルに実装していきます。 ComputeShaderはUnityShader…
AnimationEventとは Unityではモーション中に関数呼び出しを行う機能が備わっています。 これをAnimationEventと言います。 AnimationEventを使って、攻撃モーション中のみ当たり判定を出現したりすることが出来ます。 実装方法1(Unity上でアニメーションを…
前書き UnityにおけるQuartenionの制御は制作の上で壁になります。 Quartenionに限らず、3Dで回転を扱う際にはジンバルロック等の様々な障害があります。 これを解決するためのノウハウを1つ紹介します。 方法 回転させたいオブジェクトの親オブジェクトに…
方法 private変数をインスペクタに表示したい場合、以下のようにSerializeFieldの宣言を行います。 [SerializeField] private Class value; また、public変数をインスペクタに表示したくない場合は以下のように書きます。 [HideInspector] private Class val…
方法 NavigationをExplicitで設定して 各種キー操作上下左右に対応したUI要素を登録する ちなみにTransitionをColorTintで設定してHighlightedColorをわかりやすい色にしておくと良いです。 解説 UnityのUI(Button, Toggle, Dropdown等)はSelectableクラスを…
方法 CanvasScarer > ScreenMacthMode のうち Expand と Shrink を使い分ける RenderTextureを使用してWorld空間をCanvas上に置き換える 機能解説 Expandは画面内に収まるようにcanvasを描画する設定 Shrinkは画面外にはみ出すまでcanvasを描画する設定 なお…
はじめに 本記事はデザインパターン・プログラム設計を完全に理解していなくとも、近しいプログラム構造をイメージすることで簡潔な設計を目指す。 知識の導入によるリスクを避け、リターンのみを求める、ローリスクハイリターンを目指す記事である。 厳密に…
Render Textureとは カメラを複数台用意して、個々のカメラを別々にゲーム画面上に表示する機能があります。 これはカメラのみでも可能ですが、一旦テクスチャとして撮影して表示することができます。 これをRender Textureと呼びます。 使用方法 Projectビ…
コールバック関数とは? コールバック関数とは、あるイベントが発生した時に付随して呼ばれる関数のことです。 unityではUnity Eventが代表的なもので、UIシステムのボタンに実装されているOnClick関数もイベント関数=コールバック関数の一種です。 コール…
Unityには自動レイアウトという機能があります。 インスペクタ上で手軽にレイアウトが変更できるため、簡単にゲームを制作する場合に有効です。 元々はUI用の機能のようなので今回はUIで説明をしますが、 3Dオブジェクトであっても同じようにグリッド配置が…
僕のUnityのタブレイアウトはこんな感じになっています。 初期のレイアウトではProjectビューとInspectorビューが1つずつだったのではないかと思います。 こうしたタブレイアウトを変えることで実は作業が効率化できたりするので、 紹介していきたいと思いま…
ドラッグアンドドロップを実装する UnityEngine.EventSystemsにはドラッグアンドドロップ用のインターフェースが実装されています。 IDragHandler等を継承し、OnDrag()を実装するだけで簡単にドラッグ処理が実装出来ます。 厳密にドラッグ開始やクリックのタ…
今回の記事では値が変化した時に行ってほしい処理の実装方法について触れます。コールバックを使います。 Unityのコールバックについて Unityには標準でコールバックがいくつか用意されています。 UI/Buttonを作成すればOnClickというコールバックが見つかる…