Unityで画面に描画せずにテキストの幅と高さを取る方法

var fontAsset = AssetDatabase.LoadAssetAtPath<Font>(fontPath); var settings = new TextGenerationSettings { generationExtents = Vector2.zero, textAnchor = TextAnchor.MiddleCenter, alignByGeometry = false, scaleFactor = 1.0f, color = Color.white, </font>…

球の表面のuvを回転するシェーダー

百聞は一見に如かず で。 球のtransformを変更せずに球を回転させたい時どうすれば良いか。 テクスチャだけ回転させてしまえば良いのです! まあ、そんな機会めったにないと思いますが、めったに無いからこそググってもあんまり出なかったので貼っときます。…

QuestLink中にバッテリーが減らない環境の作り方

QuestLinkでVRゲーム遊んでると、徐々にバッテリーが減っていくんですよね。 充電100%の状態から遊ぶなら長時間持つので良いのですが、充電し忘れてて10%の状態から遊ぼう!となると辛いです。 そんな悩みから開放されたくて色々調べたので、ここにまとめて…

Unity2020.2でnull許容参照型を使う

null許容参照型って? ドキュメントを読みましょう。 これが欲しかった!最高! Unityで使うには辛さがある SerializeFieldは#nullable enableで囲う。とかは良いとして、 public class Hoge : MonoBehaviour { private HogeComponent _cache; public void S…

Unityの物理演算使ってると、すぐに物が吹っ飛ぶんだけど?って時に読む記事

板を2秒時点で下にずらして、さらに2秒後に元の高さに戻すデモ はじめに ゲームで使う物体のサイズ感、質量、求めている精度によってパラメーター調整を行う必要があるので、これが正解!みたいな数値があるわけじゃありません。 MaxDepenetrationVelocity P…

AndroidのIAPレシートにpackageNameが入っていないことがある

リストアのときはレシート内にpackageNameが含まれなくなったらしい。 UnityIAP1.23.2〜1.23.4までの間は、購入キャンセルしたときに1個前に成功した購入のリストア処理が勝手に走るバグがあり、(1.23.5で修正済み)購入キャンセルしたはずなのにProcessPur…

AnKuchen - UIを作成する際にInspectorにドラッグ&ドロップする必要がなくなります

github.com セットアップ UnityPackageManagerで「AnKuchen」をインストールします。 https://github.com/kyubuns/AnKuchen.git?path=Unity/Assets/AnKuchen UIのルートにUICacheComponentを追加し、Updateボタンを押します。 更新ボタンを押す処理をワーク…

もうUI作るときにInspectorでTextとかButtonをペタペタ登録する作業をやめたい

追記:公開しました → https://blog.kyubuns.dev/entry/2020/09/03/212257 Unity上でUIを作るとき、こんな感じでSerializeFieldにButtonやらTextやらをペタペタ登録するじゃないですか。 そもそもめっちゃ面倒だし、更新したときに参照張り替え忘れるし、や…

「情報を拡大縮小できるコーポレートサイト」作りました

読み手が情報の密度を選べる変なウェブサイトを作りました!ブルーパドルのメンバーとして、始めて世に出せる成果が作れたのも嬉しみ https://t.co/OftQ06t8yO— きゅぶんず (@kyubuns) 2020年8月29日

MessageBrokerでBaseClassやInterfaceのイベントを受け取る

using System; using Cysharp.Threading.Tasks; using Extensions; using UnityEngine; public class MessageTest : MonoBehaviour { public void Start() => Test().Forget(); private async UniTask Test() { var messageBroker = new TaskMessageBroker()…

TaskとMessageBrokerを活用してゲームロジックを書くとこんなシンプルに書ける

ゲーム開発の入門書の一番最初で「毎フレーム描画処理を挟む必要があるので、こうは書けません。」って言ってくるサンプルコードあるじゃないですか。 あれ、あのまま書けたらめっちゃ良いですよね。という話です。 UniRx, UniTask, TaskMessageBrokerを使い…

TaskMessageBroker

UniRxに入っているAsyncMessageBrokerのTaskバージョン using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; namespace Extensions { public interface ITaskMessagePublisher { UniTask PublishAsync<T>(T message); } public in</t>…

BridgeJsCoreUnity - UnityでJavaScriptを走らせる

github.com UnityからJavaScriptを走らせるやつです。iOS, macOS限定です。 もう死語になったUnityScriptではなく、ちゃんとJavaScriptです。 実態はJavaScriptCoreを叩く薄いラッパーです。 jsからC#のメソッドを呼び出す、みたいな高度なことは出来ません…

V言語でjsやwasmを出力する

コンパイルが爆速、Null無し、Immutable variables by default、Pure functions by defaultと自分が好きな機能盛りだくさんなV言語。 そんなV言語がjsやwasmの出力に対応しました!!! が、出力方法はまだドキュメントに乗っていません。 まあそのうち乗る…

Shapesで遊んだ記録

Shapesとは https://acegikmo.com/shapes/ Shader Forgeを作ったFreya Holmérさんが作った新しいUnity向けリアルタイムベクターグラフィック描画ライブラリ。 つまり、自分が求めていたものということ。 今の所、$10/月のパトロンになると入手できます。 Dis…