unity学习(30)——跳转到角色选择界面(跳转新场景)

这篇具有很好参考价值的文章主要介绍了unity学习(30)——跳转到角色选择界面(跳转新场景)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.在scene文件夹中([siːn]),右键->create->scene,名字叫SelectMenu(选择角色场景)。

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎

2.把新建场景拖拽到hierarchy[ˈhaɪərɑːki]中。

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎

3.此时才能在file->build setting中Add open scene,这三步的顺序不能颠倒。右边 0 1的编号是可以相互拖拽交换的。

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎

4.想要完成跳转需要用到一个全新的函数BroadcastMessage。定义写的清楚,可以直接远程调用mono继承类中的函数,后面的1是loading函数的参数。 学到下边AsyncOperation时,就发现加载过程是有必要重新新建一个脚本的。

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎 还可能用到StartCoroutine(协作)函数,也是用来调用其他函数的。一个协同程序在执行过程中,可以在任意位置使用yield语句。yield的返回值控制何时恢复协同程序向下执行。协同程序在对象自有帧执行过程中堪称优秀。协同程序在性能上没有更多的开销。StartCoroutine函数是立刻返回的,但是yield可以延迟结果。直到协同程序执行完毕。很好理解的yield执行完以后,程序才继续向下执行这个我的程序中明显是需要的,作用其实就是把登录代码卡住。执行函数的返回值是IEnumerator类型的。

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎

在MessagerManager中新定义一个变量 async

unity学习(30)——跳转到角色选择界面(跳转新场景),unity,学习,游戏引擎

AsyncOperation 是 Unity 引擎中的一个类,在异步操作过程中使用,例如加载资源和场景等。一个 AsyncOperation 实例代表一个正在进行的异步操作,并且可以查询该异步操作的状态和进度。通过查询该类的属性(如 isDone 和 progress),可以了解异步操作的状态,以及跟踪它的进度。此外,您还可以为异步操作设置回调函数,以便在操作完成时得到通知。

此时把ResceneScript.cs粘到Scripts文件夹中。粘入之后没有警告,此时loginHandler中对应功能的代码如下:

case LoginProtocol.LOGIN_SRES://1
{
     Debug.Log("成功登录,要进行场景跳转了");
        //继承一些信息,来自loginhadler里面的,有原代码很省事的--把message对住就没问题了
        StringDTO dto = Coding<StringDTO>.decode(model.message);//基本就完全等于是我自己写的
        Debug.Log("dto.value:"+ dto.value);
        if (dto.value == null || dto.value == string.Empty)//登录如果失败啥都不做就可以了
        {
            Debug.Log("登陆失败!");
            //顺便修改一下对应文字即可
            TMP_Text c = GameObject.FindWithTag("logText").GetComponent<TMP_Text>(); ;//得到两个Text对象
            c.text = "登录失败";
        }
        else
        {
            TMP_Text d = GameObject.FindWithTag("logText").GetComponent<TMP_Text>(); ;//得到两个Text对象
            d.text = "登录成功";
            Debug.Log("成功登录,要进行场景跳转了");
            GameInfo.ACC_ID = dto.value;//静态类起到全局效果
            GameInfo.GAME_STATE = GameState.LOADING;
            BroadcastMessage("Loading", 1);//到时候肯定有收的,这个才是游戏真正的消息机制--暂时还用不到
            //GameInfo.GAME_STATE = GameState.LOADING;//加载状态其实我也用不到
            //StartCoroutine("load",1);//调用一个写作函数--作用其实就是把登录代码卡住。
            Debug.Log("等待下一次挑战");
        }    
        break;
}

BroadcastMessage("Loading", 1);理论上就进入ResceneScript.cs了。​​​​​​​文章来源地址https://www.toymoban.com/news/detail-835166.html

到了这里,关于unity学习(30)——跳转到角色选择界面(跳转新场景)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包