导入R3,简单实现数据绑定UI,以及双向绑定

This commit is contained in:
2025-11-05 05:16:06 +08:00
parent 1ccc7f299d
commit c5c380d170
137 changed files with 6900 additions and 24 deletions

View File

@@ -6,8 +6,6 @@ using static UnityEngine.Rendering.VirtualTexturing.Debugging;
public class Boot : MonoBehaviour
{
public GameObject MainUICanvas;
public Camera UICamera;
public Camera MainCamera;
public EPlayMode PlayMode = EPlayMode.EditorSimulateMode;
void Awake()
@@ -17,14 +15,10 @@ public class Boot : MonoBehaviour
#endif
Application.targetFrameRate = 60;
Application.runInBackground = true;
DontDestroyOnLoad(MainUICanvas);
DontDestroyOnLoad(UICamera);
DontDestroyOnLoad(MainCamera);
}
async void Start()
{
GameManager.Inst.UICamera = UICamera;
GameManager.Inst.MainUICanvas = MainUICanvas;
bool updateSuccess = await PatchManager.Inst.StartOperation(PlayMode);
if (updateSuccess)
await EnterGame();

View File

@@ -2,6 +2,5 @@ using UnityEngine;
public class GameManager : Singleton<GameManager>
{
public Camera UICamera;
public GameObject MainUICanvas;
}

View File

@@ -0,0 +1,15 @@
using UnityEngine;
public class MainUICanvas : SingletonMono<MainUICanvas>
{
public GameObject InitBg;
public Transform Top;
public Transform Medium;
public Transform Bottom;
public Camera UICamera;
private void Awake()
{
DontDestroyOnLoad(gameObject);
DontDestroyOnLoad(UICamera);
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: a47ab17bc3d41694286b14a1c6cd2782

View File

@@ -33,7 +33,7 @@ public class MessageBox : MonoBehaviour
return null;
}
var go = Instantiate(prefab, GameManager.Inst.MainUICanvas.transform.Find("Top"));
var go = Instantiate(prefab, MainUICanvas.Inst.Top);
go.name = "MessageBox";
var messageBox = go.GetComponent<MessageBox>();
return messageBox;

View File

@@ -43,6 +43,7 @@ public class MainOperation
}
if (!await operation.ClearCacheBundle()) return;
operation.SaveVersionToCache();
YooAssets.SetDefaultPackage(operation.package);
}
private void OnDownloadUpdate(DownloadUpdateData downloadUpdateData)
{

View File

@@ -42,7 +42,7 @@ public class PreloadOperation
if (!await operation.UpdatePackageManifest()) return;
await HotDllLoader.Inst.LoadDll(YooAssets.GetPackage("Preload"), "GameScripts.Preload");
await LoadAndShowPatchWindow();
GameManager.Inst.MainUICanvas.transform.Find("InitBg").gameObject.SetActive(false);
MainUICanvas.Inst.InitBg.SetActive(false);
_ = UpdatePreloadPackage();
}
void CheckIsOffline()
@@ -71,7 +71,7 @@ public class PreloadOperation
var assetHandle = operation.package.LoadAssetAsync<GameObject>("PatchWindow");
await assetHandle.ToUniTask();
if (assetHandle.Status == EOperationStatus.Succeed)
GameObject.Instantiate(assetHandle.AssetObject, GameManager.Inst.MainUICanvas.transform.Find("Bottom"));
GameObject.Instantiate(assetHandle.AssetObject, MainUICanvas.Inst.Medium);
Debug.Log("创建热更信息界面");
}
private async UniTask UpdatePreloadPackage()