テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Unity2019.2

【Unity】ECSでもNavMeshを使って移動範囲を限定したい

ECSでNavMeshを使いたい 先日行われた1WeekGameJamの実況にてユニティちゃんが走り回るゲームがあり、それを見て何となくECS(SubScene)でもNavMeshによる移動制限を使用したいと思ったので、やり方を考えてみました。 考え的には大昔に書いたマップから落…

【Unity】ISystemStateComponentDataという機能

今回は微妙に詳細な説明のないISystemStateComponentDataという機能を紹介します。 EntityがDestroyされても破棄されないコンポーネント Entity生成・破棄のタイミングで処理を一回実行する 初期化時の処理(Awake的な) 初期化後の毎フレーム実行する処理(…

【Unity】ECSのSubSceneでISharedComponentDataを使う

この記事はUnity 2019.2.8f1とEntities 0.1.1 を利用しています。また設計がイケてないので修正されてしまいそうな感じはありますが、現状SubSceneを試す上で知らないで苦労したのでメモします。 SubSceneでISharedComponentDataが使えない とりあえずIShare…

【Unity】構造体のデータを異なる型に「再解釈」する

DOTS…特にECSで色々とやっていると、内部のデータは同じなのに型が違うせいで変換しないといけないというケースがあります。 例えば float のバッファを流し込んでバッチ処理を行うAPIがあった時、ローカルのデータで NativeArray<FloatData> のような構造体の配列は直</floatdata>…

【Unity】ブラシを使ってステージにGameObjectをサクサクっと配置する

ステージに木や岩を配置したい 今回やること 手順1:準備 手順2:配置するPrefabの登録 手順3:ブラシで塗る 補足 関連 ProBuilderで地面を作る場合 ステージに木や岩を配置したい ステージを作る際、 木や岩をランダムに配置したい という物があります。…

【Unity】出来るだけ簡単にNew Input Systemを使いたい

新しいInput Systemは少し面倒くさい PlayerInputを使用する PlayerInputの利用手順 キー入力やゲームパッドの取得 関連 新しいInput Systemは少し面倒くさい 新しいInput Systemですが、正直な意見として面倒くさいというのがあります。アクションにキーを…

【Unity】新しいインプットシステムで、バーチャルパッドに対応させる

バーチャルパッドに対応させる 手順1:UIを作る 手順2:UIのボタンを押したら弾を出す 手順3:スティックを動かしたら動く オマケ:ボタン操作でプレイヤーを動かす 関連 バーチャルパッドに対応させる 新しいInput Systemでバーチャルパッドを作ってみま…

【Unity】新・新しいInput Systemの使い方(Inputsystem ver 1.0版)

以前書いた新しいInput Systemの記事の書き直しです。 新しいInput System(1.0) 導入 作るもの 手順1:Input Actionsを作る 手順2:キャラクターを動かす(コールバックで動かす場合) 手順2:キャラクターを動かす(ポーリングして動かす場合) キーコ…

【Unity】Burstコンパイラでルックアップテーブルを使用する

ルックアップテーブルを使おう Burstでルックアップテーブルを使おう サンプル 関連 ルックアップテーブルを使おう ルックアップテーブル:複雑な計算処理を単純な配列の参照処理で置き換えて効率化を図るために作られた、配列や連想配列などのデータ構造の…

【Unity】LWRPで特定のモデルのみポストプロセスがかからないようにする

一部のモデルにだけ、色あせるポストプロセスをかけない 昨日の応用で、一部のモデルにだけポストプロセスがかからないようにします。 一部のモデルだけポストプロセスの影響をかけないようにする 手順 注意点 一部のモデルだけポストプロセスの影響をかけな…

【Unity】LWRPでポストプロセスを使用しつつUIの手前にパーティクルを表示する

LWRPはカメラのスタックができない PostProcessingの後にUIとパーティクルを描画する UIの間にパーティクルを挟む 注意点 PCを新しくしてからの初更新です。 環境:Unity 2019.2f8、LightWeight RP 6.9.1 LWRPはカメラのスタックができない いろいろと便利な…

【Unity】2019.2で追加されたTryGetComponentについて

Unity 2019.2から、TryGetComponentというAPIが追加されました。何時も通りGetComponentで取得する際、なんか見覚えがないAPIがあってビビったのはここだけの話。 TryGetComponent パフォーマンスは? TryGetComponent 今まで「コンポーネントが割り当てられ…

【Unity】LWRPの2Dパイプラインで、ShaderGraphを使ってみる

今回はLWRPの2DRendererでShaderGraphを使用してみます。 2Dパイプライン Shader Graph 使ってみる 注意事項 2Dパイプライン コチラを参照 tsubakit1.hateblo.jp Shader Graph この2Dパイプラインでは、単純なLit/Unlitのシェーダーだけでなく2D用のマスター…

【Unity】LWRPのライトで †暗黒の光† をしたかった

今回は昨日チラっと書いた、暗闇をライトで表現するアプローチについてです。 意図的に暗い空間を作る ライトの減算設定を登録 実際に暗黒の光を発する発光体を配置する 注意点 意図的に暗い空間を作る ステージを作るとき、 重要である事を示すために明るく…

【Unity】LWRPの2D向けライト機能を試してみる

今回はLWRPに追加された2Dライトを試してみます。 2Dにライト 導入手順 とりあえずライトを試す 陰影表現の追加 注意事項 2Dにライト 最近の海外で2Dなゲームでは、2Dでもライティング…正しくは法線効果で光源の位置を示しているゲームをよく見ます。 そのや…