ulua SimpleFramework_UGUI 뜨거운 갱신 로직 소면 프레임

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/shirln/article/details/100141059

추천 도서 :

플로우 차트

먼저, 거의 모두가 흐름도의 프레임 워크를 사용하는의 실행 순서를 렌더링. 비교를 용이하게하기 위해 코드를 참조 흐름도가 사용되는 방법의 함수 이름, 방법은 대응하는 스크립트 파일의 이름 바로 옆에 3 개의 점 흐름도의 코드 시퀀스의 오른쪽에 스크립트의 실행.
여기에 그림 삽입 설명

프로젝트 논리적 분석

는 C # 스크립트와 루아 스크립트가 열려 쉽게 볼, 들어, 논리적 프레임 워크를 살펴, 나는 각각 루아와 C # 코드를 열 숭고한 및 VS 편집기를 선택했다.
여기에 그림 삽입 설명
1, 처음 SimpleFramework_UGUI-0.4.1 \ 자산을 열고 \ \ 예 \ 로그인 장면 장면, 카메라는 영속와 함께 여행하는 이외에, GlobalGenerator라는 빈 객체가 있고,라는 GlobalGenerator.cs 스크립트 양 이상으로 할 수 매달려 생각할 수 GlobalGenerator.cs 우리의 게임이 시작 함수 생각 :
여기에 그림 삽입 설명
의견으로 정확한 게임 입구 AppFacade.Instance.StartUp () 확인할 수 있습니다;
2, F12는 시작 프로그램보기 기능 특정 정의를 입력, F12는 SendMessageCommand를 입력, SendMessageCommand를 정의하는 방법이 있습니다 , RegisterCommand 방법이 정의되어있다.

理解了SendMessageCommand和RegisterCommand方法,从下图中我们就能理解代码的意思了,首先为NotiConst.START_UP注册了一个StartUpCommand类型的命令,然后在StartUp函数中发送了NotiConst.START_UP命令,目的是执行操作。
여기에 그림 삽입 설명
3、F12进入StartUpCommand中
여기에 그림 삽입 설명
图中的操作是为GlobalGenerator游戏物体添加AppView脚本组件,然后为其添加一系列的管理器脚本。这里我们主要分析GameManager脚本。
4、OnResourceInited函数的作用。
여기에 그림 삽입 설명
上面代码首先执行了Network,lua和GameManager.lua脚本。
接着调用了CallMethod,我们使用F12一直追踪,定位到如下函数:
여기에 그림 삽입 설명
通过这个函数分析发现:object[] panels = CallMethod(“LuaScriptPanel”);这句代码是在执行logic\GameManager.lua中的LuaScriptPanel方法,因此,我们又转到GameManager.lua中,分析LuaScriptPanel方法的作用:
여기에 그림 삽입 설명
结合GameManager.c和上面的代码可以看出,这里返回的是需要加载的场景面板对应的名字数组,但是统一去掉了面板名字的Panel字段,因为在C#下面的代码中查找时自动添加了该字段。
여기에 그림 삽입 설명
由上图我们可以看出获取到面板名字后又执行了View下对应名字的lua代码:
여기에 그림 삽입 설명
执行完所有的View下对应的name+Panel.lua代码,程序又回到了C#代码,此时C#代码又执行了OnInitOK,该方法位于GameManager.lua下
여기에 그림 삽입 설명
일부 네트워크 연결 작업을 분리하고, 두 깨어있어서, 상기 추적 startCtrl.lua 수행
여기에 그림 삽입 설명
PanelManager.cs 수행 여기 깨어 createPanel 방법 :
여기에 그림 삽입 설명
패널을 인스턴스화하는 HS 개방 createPanel 방법 및 부모의 설치 위치를 노드 등등.
다음 개체를 인스턴스화하고 루아 코드 콜백 메소드에서 OnCreate의 완료를 다시 설정하면, 패널 어셈블리에 클릭 이벤트를 추가
여기에 그림 삽입 설명

추천

출처blog.csdn.net/shirln/article/details/100141059