一、自写运行逻辑
不用周期函数,因为知道哪个是先开始后开始不方便,需要调整代码的执行顺序
而使用一个游戏启动入口脚本,初始化各个代码更方便控制。
//游戏启动入口
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameRoot : MonoBehaviour
{
private void Start()
{
Debug.Log("Game Start");
Init();
}
private void Init()
{
//服务模块初始化
ResSvc res=GetComponent<ResSvc>();//ResSvc res=new ResSvc();
res.InitSvc();
//业务系统初始化
LoginSys login=GetComponent<LoginSys>();
login.InitSys();
//进入登陆场景并加载相应UI
login.EnterLogin();
}
}
//资源加载服务
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ResSvc : MonoBehaviour
{
public void InitSvc()
{
Debug.Log("Init ResSvc");
}
}
//登录注册业务系统
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoginSys : MonoBehaviour
{
public void InitSys()
{
Debug.Log("Init LoginSys");
}
/// <summary>
/// 进入登录场景
/// </summary>
public void EnterLogin()
{
//TODO
//异步加载登陆场景
//并显示加载的进度条
//加载完成以后打开注册登录界面
}
}
二、场景切换
通过GameRoot来切换场景,在切换场景时,不销毁这个脚本
在Init方法中,分别执行开始场景,然后是登陆场景和登陆场景中的方法
注:登陆场景方法设置为单例,并且GameRoot也设置为单例