赤兎ラボ

コーディングからバージョン管理、業務効率化までをまとめます。

unity1weekで実装出来た機能について振り返ってみた 感想編

今回のunity1weekは少し頑張りすぎた気がしています。赤兎です。 redrabbitnet.hatenablog.com 前回の記事で実装出来た内容について羅列していますが、今回の記事では所感や掛かった時間や手間について言及していければと思っています。 1. 街モデル作成につ…

unity1weekで実装出来た機能について振り返ってみた 実装内容編

TheQuakerThumbnail 機能について大雑把にまとめると、実は初心者であっても熟練者であっても実装出来る機能に大差はないんじゃないかと思ってしまった赤兎です。 そんなわけで、今まで学習してきた技術はこんな風に今回のゲームに生かされているんだという…

Unityの操作画面について

さて、Unityの初心者さん向けの記事を改めて書いていきます。 しかし、書いた文章にわからない用語があっては調べなおすのが面倒です。 よって、粗方の用語を載せておこうと思います。 ここでは基本となる操作画面について紹介します。 Gameビュー Sceneビュ…

Unity Animation Preview

Animationの実装をするうえでプレビュー機能ちゃんと使えていますか? そんなわけでUnityAnimationの学習を頑張ってます。赤兎です。 今日紹介するのはInspectorビュー下に表示されるAnimationPreviewについてです。 しっかりと使えればAnimationを実装する…

UnityAnimationの知識

UnityにおけるAnimation周りに関する知識についてまとめておきたいと思います。 初めに断っておくと、本記事は実装上の問題を解決するものではありません。あくまでも知らないと何処を学べばいいかすら分からないので知っておきましょうという無知の知を得る…

StudioOneでローディングが頻発し音が途切れる問題

StudioOneでローディングが頻発して音が途切れる問題が発生したため、遭遇した問題を解決した方法を書いておきます。 環境 Windows10 StudioOne5 解決策 コントロールパネル→サウンド->録音タブから以下の画面を開きます。 ステレオミキサーを規定のデバイス…

ドレミファソラシドが綺麗に鳴らないプログラムの話

制作中のゲームにおいてコンボが続くごとに音程をドレミファソラシドと上げる実装を目指してピッチを変更するスクリプトを書きました。 私が最初に書いたプログラムは pitch = x * combo のような単純なもの。 コンボに比例してピッチが上がっていけば、高音…

VideoPlayerをフレーム送りで再生する

動作環境 Unity2020.3.21f1 概要 VideoPlayerによるmp4動画のフレーム再生を行います。 再生方法はURLを指定するものとします。 コードについて 基本的なフレーム送りはVideoPlayer.StepForward()で行えます。これは1フレーム進めて描画するための関数です。…

ログをちょっと多く表示するConsoleビューハック

Unityを使う上で欠かせないConsoleビューはデフォルトで2行ずつ表示になっています。これを1行にする方法を紹介します。 しかし、このログをよく見るとUnityEngine.Debug.Log(object)が表示されていることがほとんどで正直要らない気がする。スペースは有…

NavMeshの分かりにくいトコ

NavMesh height slope radius、そんなワードで検索をかけているあなたに伝えたいNavMeshの分かりにくい特徴について少しだけ触れます。 こんなところで時間を費やしたのは僕だけでしょうか、いやそんなはずはない。 僅かな気になりポイントを書きます。 まず…

Generic Interfaceとかいうやつ

Genericなインターフェースって実装しようとするとどうなるんだろうと思ってやってみました。JetBrains Riderによる補完された答えは以下の通りです。そんな定義の仕方があるんだなーって参考になったのでご紹介です。 public interface ITestInterface<T> { T </t>…

静的ゲームオブジェクトでおかしいと思ったら

Unityには静的ゲームオブジェクトという機能が備わっています。 調べればすぐに出てくるし、staticにチェックを入れるだけでライティング等の負荷を削減できます。 しかし、私の知識は古かった。 staticのチェックを入れてるのにパフォーマンス変わらないな…

JellyPutiプライバシーポリシー

利用者情報の取得 本アプリが利用者の個人情報を取得することはありません。 利用者情報の利用 本アプリが利用者の個人情報を利用することはありません。 利用者情報の第三者提供 本アプリが利用者の個人情報を第三者へ提供することはありません。 お問い合…

Unityにおける座標移動の実装方法まとめ

座標移動の実装を考える時、度々「もっと良い方法があるんじゃないか」となることが多いため、まとめていこうと思う。 考慮すべき事柄 実装内容によってベストな実装は異なると考える。よって、考慮すべき事柄もまとめておく。 1. Y軸移動が存在するか 2. 障…

NatShareを使っていたらiOSビルドでエラーが起きた話

モバイルアプリ制作において画像やテキストの共有、SNSシェアを実装してくれる力強いアセットであるNatShare。お世話になっております。 こいつを使っているときにiOSビルドエラーが出たため共有しておくこととします。 実際に出たエラーはこちら Undefined …

私はInspectorでパラメータを設定するのをやめるぞ!

コード Reset() { GetComponent<Text>; } 使い方 Start関数等と同じようにMonobehaviour継承クラスで関数を実装して使います。 GetComponentはStart内部で呼ぶには重い!とかSelializeFieldを設定したけどドラッグで設定しなければならない時、かなりの効率化が見</text>…

ちょっとエモいグラデーション画像を作る

本日の成果物 ちょっと縁がふんわりしててエモい! 作り方 a,bの2つのレイヤーを作成します。 a-1. 2色の線形グラデーションを全体に塗る a-2. 全体範囲選択(ctrl+a)した後、 選択範囲->選択範囲を変更->縮小(カンバスの境界に効果を適用) 今回は画像横幅124…

Enumを文字列の配列として使おう

Enumを文字列の配列として使う Enum.GetNames(typeof(MyEnumType)).ToList() よく使うのでメモっておこうシリーズ。 リソースファイルの名称等をenumにまとめた上でアクセスしたりしやすい。

Unity x PlayFab 導入しやすい! ただし注意点も

最近流行りのPlayFabについて知見が溜まってきたので共有したいと思います。 本記事はPlayFabを導入しようか迷っている方に向けて、導入のメリットと注意点について紹介できればと思っています。 また、既に利用している人は、注意点の項目を読むことで、意…

Unity Addressables

前提 以下の点を理解していない場合は、Addressableを導入するには早いかもしれません。 > Resources.Loadを使ったことがあること > Coroutine等、非同期処理について理解していること また、導入のための手順が比較的多いので、解説用の画像は以後追加でき…

Unity MonoBehaviourを継承する場合としない場合の使い分けについて

MonoBehaviourとは MonoBehaviourはUnity上でクラスを生成すると自動的に継承されるクラスである。 これによってStart()やUpdate()等の関数が使える。 逆にコンストラクタが使えなくなるため、Awake()等で代用する必要がある。 どんな時にMonoBehaviourを継…

簡単!自作ポストエフェクトComputeShader入門

要件 RenderTextureに対してComputeShaderでポストエフェクトをかけていきます。 例として描画される景色をRGBに分割したエフェクトをかけていきます。 レンダリングパイプラインをあまり意識せず、シンプルに実装していきます。 ComputeShaderはUnityShader…

Unity AnimationEvent

AnimationEventとは Unityではモーション中に関数呼び出しを行う機能が備わっています。 これをAnimationEventと言います。 AnimationEventを使って、攻撃モーション中のみ当たり判定を出現したりすることが出来ます。 実装方法1(Unity上でアニメーションを…

Unity Tips 回転を簡潔に制御する

前書き UnityにおけるQuartenionの制御は制作の上で壁になります。 Quartenionに限らず、3Dで回転を扱う際にはジンバルロック等の様々な障害があります。 これを解決するためのノウハウを1つ紹介します。 方法 回転させたいオブジェクトの親オブジェクトに…

Unity private変数をインスペクタに表示したい

方法 private変数をインスペクタに表示したい場合、以下のようにSerializeFieldの宣言を行います。 [SerializeField] private Class value; また、public変数をインスペクタに表示したくない場合は以下のように書きます。 [HideInspector] private Class val…

Unity キー操作でUI要素を操作する

方法 NavigationをExplicitで設定して 各種キー操作上下左右に対応したUI要素を登録する ちなみにTransitionをColorTintで設定してHighlightedColorをわかりやすい色にしておくと良いです。 解説 UnityのUI(Button, Toggle, Dropdown等)はSelectableクラスを…

Unity 様々な画面サイズに対応する

方法 CanvasScarer > ScreenMacthMode のうち Expand と Shrink を使い分ける RenderTextureを使用してWorld空間をCanvas上に置き換える 機能解説 Expandは画面内に収まるようにcanvasを描画する設定 Shrinkは画面外にはみ出すまでcanvasを描画する設定 なお…

MVVMパターンをザックリ活用

はじめに 本記事はデザインパターン・プログラム設計を完全に理解していなくとも、近しいプログラム構造をイメージすることで簡潔な設計を目指す。 知識の導入によるリスクを避け、リターンのみを求める、ローリスクハイリターンを目指す記事である。 厳密に…

RenderTextureを使った3Dミニマップ表示

Render Textureとは カメラを複数台用意して、個々のカメラを別々にゲーム画面上に表示する機能があります。 これはカメラのみでも可能ですが、一旦テクスチャとして撮影して表示することができます。 これをRender Textureと呼びます。 使用方法 Projectビ…

コールバック関数の実装について

コールバック関数とは? コールバック関数とは、あるイベントが発生した時に付随して呼ばれる関数のことです。 unityではUnity Eventが代表的なもので、UIシステムのボタンに実装されているOnClick関数もイベント関数=コールバック関数の一種です。 コール…