| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 入职day2day3 -> 正文阅读 |
|
[游戏开发]入职day2day3 |
完成环境部署,day2出了点小问题, 金山毒霸有误删win10的网络项问题 重装后需要搭建, jdk+adb+unity对应版本+rider+git+npp+钉钉+chrome件文件夹链接+clone项目代码 项目初步熟悉建立过程: 1. 先定位主要涉及目录(非插件类) 包括Build, Configs 渠道配置项回顾 scriptableObject Game目录,主要是对象实体Entity, Scene, 各种UI的Form, 除scene外按prefab归档 Scripts目录, 主要代码目录,接下分析 2. 定位程序入口 由于魔改Game Framework后的版本程序主入口不再是unity默认的那个,是通过unity的编辑器扩展功能实现 在script的editor的目录下,? 通过方法InitializeOnLoad,在编辑器层面固定执行初始化方法 EditorApplication.playModeStateChanged += OnPlayModeStateChanged; ToolbarExtender.LeftToolbarGUI.Add(OnToolBarGUILeft); ToolbarExtender.RightToolbarGUI.Add(OnToolBarGUIRight); 向中间play的工具栏的左右添加自定义组件 当执行play时,不管当前的scene如何,固定定位到主场景执行 private static void LaunchGame() { Debug.Log("launch game"); if (EditorApplication.isCompiling || EditorApplication.isPlaying || EditorApplication.isPaused) { return; } var activeScene = SceneManager.GetActiveScene(); if (activeScene.name == "GameFramework") { //直接启动 EditorApplication.isPlaying = true; } else { PlayerPrefs.SetString(NeedRestoreSceneSaveKey, activeScene.path); EditorSceneManager.OpenScene("Assets/GameFramework.unity"); EditorApplication.isPlaying = true; } } 执行完毕后, 通过playerPrefs暂存的当前场景恢复到当前scene在 OnPlayModeStateChanged方法: private static void OnPlayModeStateChanged(PlayModeStateChange state) { if (state == PlayModeStateChange.EnteredEditMode) { var needRestoreSceneAssetPath = PlayerPrefs.GetString(NeedRestoreSceneSaveKey); if (!string.IsNullOrEmpty(needRestoreSceneAssetPath)) { EditorSceneManager.OpenScene(needRestoreSceneAssetPath); PlayerPrefs.DeleteKey(NeedRestoreSceneSaveKey); } } else if (state == PlayModeStateChange.EnteredPlayMode) { stayAtSceneViewWhenPlayGame = PlayerPrefs.GetInt(StayAtSceneViewSaveKey) == 1; if (stayAtSceneViewWhenPlayGame) { EditorWindow.FocusWindowIfItsOpen(typeof(SceneView)); Debug.Log("focus scene view"); } } } odin插件学习 十分钟入门Unity革命性编辑器拓展插件——Odin_哔哩哔哩_bilibili 先从网站了解为什么要使用odin,以及odin开发带来的好处 1. 简化代码开发工作量; 2. 轻松实现dictionary等类型的序列化显示; 3. 更美观清晰的ui界面 并进行了简单的使用了解,对于复杂用法还有待学习 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 16:23:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |