Unity-Technologies / Unity-Technologies/com.unity.netcode.gameobjects

Addressables (and Custom) Scene Loading

オープン
#2,868 コメント 0 件 リアクション 15 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

type:feature
主要言語
C#
スター
2.3k
フォーク
461
平均マージ
3日 16時間
マージ済み PR(30日)
20

説明

Right now, NGO's NetworkSceneManager can't work with Unity's Addressable scenes. In my setup, I depend on data and event assets shared across the game, necessitating the use of addressable scenes to some extend. The current NGO framework limits us from switching to our preferred scene management method because the essential components, specifically the ISceneManagerHandler and its default assignment to DefaultSceneManagerHandler, are internal and not easily replaceable. The whole issue was previously discussed in a closed Issue #423, where a fork was used as a workaround which is a solution I'd prefer to avoid.

Integrating a custom scene provider into NetworkSceneManager might be a solution, enabling a more flexible approach to scene loading. Alternativlely allowing us to replace or extend the ISceneManagerHandler setup or the NetworkSceneManager itself, by making these components not internal, could solve the problem without needing to fork the NGO repository.

Avoiding Addressable Scenes isn't a practical option for me. It would require a significant overhaul of my systems that rely on asset-based events and data, which are accessed and modified by various systems such as UI, player interactions, and scenes.

I've also considered building my own system. However, creating a solution for Addressable scene management to function alongside NGO's existing framework feels like an unnecessary duplication of effort. Moreover, it seems this would require me to add features like auto scene migration support, addressing a problem which to me seems to be rooted at a different level, specifically syncing scene IDs and providing scenes. I'd prefer to see enhancements to the existing NetworkSceneManager to directly support Addressables or at least make it possible to replace the NetworkSceneManager with a custom implementation.

I am not an expert in these matters and I hope that my request is not too uneducated. I will continue to search for solutions.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず NetworkSceneManager とその ISceneManagerHandler の設定(デフォルトの DefaultSceneManagerHandler を含む)を読み、クローズされた Issue #423 の背景を確認します。完了した作業で、カスタム provider を通じた Addressable シーンのサポートを目指すのか、それとも fork なしでシーン管理コンポーネントを置き換え可能にするのかを定義してください。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
csharp, unity
領域
networking
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。