欢迎光临散文网 会员登陆 & 注册

Unity场景转换——麦叔《迷失岛2》游戏框架

2023-04-05 15:08 作者:南桥思休  | 我要投稿

——水平有限,仅个人记录,出现错误也难免

场景层级

这种场景处理方式我感觉可以用在很多项目中,本文主要还是记录这种优秀的场景处理方法

  • Persistent:主场景:

    控制类脚本存放位置(需要持久化出现在场景,不会因为场景切换造成丢失(虽然可以DontDestroyOnLoad,但是一个不方便,不便拓展;一个是不能保证加载顺序正确(个人理解))包括像Canvas下的panel的切换,TransintionManager,CurSorManager检测特定tag的碰撞体(当然也不限于此功能,包括切换鼠标sprite等)都可以放在主场景中。

  • H1、H2场景间切换

注意点

  • 导入MTool.dll:防止用string类出现在场景中未设置或设置错误的情况

  • 注意加入CanvasgGroup的时候,当alpha为0时设置Block Raycasts为false(代码实现),防止遮挡鼠标点击

  • 先将脚本TransintionManager挂载,然后修改为单例模式

  • UnityEngine.dll里的Singleton<T>

当脚本实例被加载时会调用Awake函数;Awake函数在所有的游戏对象被初始化完毕之后才会被调用;在脚本实例的整个生命周期中,Awake函数仅执行一次。Awake函数的执行与否与脚本实例的状态(启用或禁用)并没有关系,而是与脚本实例所绑定的游戏对象的状态有关。

TransintionManager继承Unity自带的Singleton<TransitionManage>要是不先挂在对象上,也不会自动生成实例

自己写单例模板:(可自动生成,无需挂载)

注释掉需要实例化的字段和代码部分:也能运行实现场景切换但是暂时觉得这种实现拓展性太差

代码展示

具体代码解释参考原视频,我也只是稍微总结了一下。原视频链接:

【《迷失岛2》游戏框架开发01:实现场景转换|Unity教程】 https://www.bilibili.com/video/BV19a411i7Tw/?share_source=copy_web&;vd_source=1a4aca8365c4306cd29bfe65b5aa448a

CurSorManager鼠标点击管理

 TransitionManager类

Teleport 类

这个需要挂载在每个场景里,注意Tag设置

Unity场景转换——麦叔《迷失岛2》游戏框架的评论 (共 条)

分享到微博请遵守国家法律