2018-11-01から1ヶ月間の記事一覧
今回は自分がECSで色々やるときに、よくやっているTipsを3つ紹介します。 パッケージをPackagesに移す inputDepsのチェーン Debug.Logを出す NativeArrayを自動的に開放するジョブ 関連 パッケージをPackagesに移す PackageManagerで導入したパッケージはC#…
今回はUnityHubで表示されていないバージョンのダウンロードについてです。 UnityHub経由でダウンロード出来ない 解決編 UnityHub経由でダウンロード出来ない Unity Hubは複数のUnityのバージョンをインストールするのに便利です。 複数のUnityのバージョン…
今回はARCoreとAR Kitの両方に対応したマルチプラットフォームAR環境である「AR Foundation」、その最初の一歩として「とりあえず動くもの」の作り方を紹介します。 AR Foundationとは? 使い方 ARのセットアップ 平面の検出をグラフィカルにする オブジェク…
Unity 2018.3の目玉機能(???)の一つである物理演算周りの更新、その一つであるMulti-Scene Physicsについてです。 Multi-Scene Physics PhysicsScene単位で物理演算の速度を変化させる PhysicsScene単位でRaycast 使い方 面白い機能だね!どんな時に使えるの…
ゲームでキャラクターをロードしたりする際、画面がカクつくというのは割とよく見る光景です。今回はその辺りの対処法についてメモしておきます。 Async Upload Pipeline(非同期アップロードパイプライン)の活用 シェーダーのウォーミングアップ シェーダ…
自分はCinemachineの機能は結構好きで、色々と遊んでみたりしているのです。それでもなお首を撚る系の機能「Clear Shot」についてです。 Clear Shot キャラクターが隠れた時に、見える位置にカメラを動かす 手順 キャラクターが近づいてきた時にカメラを切り…
今回はC# Job SystemでTransformAccessArrayを利用した際の、ジョブの分割数についてのお話です。 TransformAccessArrayが並列処理されない? 親が同じならば単一のジョブで実行される ジョブの分割数を制限 複数のIJobParallelForTransformを発行するとどう…
Unity 2018.3からNavMeshのRaycastを非同期で実行することが出来るようになったので、その方法についてです。 なおExperimentalなAPIを使用するので、今後変わるかもしれません。 NavMeshQuery経由で非同期でRaycastを実行 使ってみる 非同期で動かそう! 関…
今回はECSで配列を使用する方法についてです。 ECSで配列を使用する ECSに格納するComponentDataには配列を格納出来ません。とはいえ、マネージドなメモリも格納出来るSharedComponentDataは大量の種類を生成するとECSの効率が著しく下がるので余り良くあり…
SpriteAtlasを始めとしたパッキングのアプローチを使用することで、スプライトの描画時に必要なパスの数が減り、パフォーマンス的に良い感じになります。よく言われるDrawCallやSetPassの削減というやつです。 さて、SpriteAtlasでスプライトをパッキングし…
今回はEnumeratorを使用して文章を一つずつ取り出していきます。余りに使わない技術なのでよく忘れるのですが、その度に思い出すのも面倒なのでココにメモしておきます。 リストから要素を取り出す そうだ、Enumeratorを使おう 使えるのはList 感想 関連 リ…
今回はECSにおけるEntityのセーブ及びロードについてです。 つまりGameObjectをSceneやPrefabに固めるように、Entity(Entity & ComponentData)をファイルとして書き出します。 なおUnity 2019辺りのタイミングでちゃんとしたエディターサポートが始まるの…
今回はボタンをタイミング良く押すと連続攻撃になる動作を作成します。 格ゲーのようなコマンド入力ではなく、3Dアクションによくあるような非常に単純なもの です。 ボタン連打でコンボ攻撃 1. ボタンを押したら殴る 2. ボタンを押したら次の攻撃への実現 3…