Unity 天命6源码- 商业游戏说明分析

如需要简单天命6源码解析,请参考:会走路的小哥

如果是我,天命6的源码大概分几块?

(仅客户端)

  1. 状态模块,PVP或者PVE的战斗,是一直更新的State
  2. 登录模块
  3. 第三方插件
  4. 设置配置config

状态机,状态模块

场景状态

cpp 复制代码
    public enum EStageResultState

    {

        EState_Inactive = 0,    // 비표시. 隐藏 / 未激活。

        EState_Move,            // 유닛, 카메라 이동 // 单位与摄像机移动中。

        EState_Complete,        // 레이드 종료. (실패/성공 없이 모두 같은 결과 화면)// 关卡结束。(无论成功或失败,均显示相同的结局画面)

        EState_Max,                // 枚举最大值(通常用于计数或边界检查,不表示实际状态)。

    };

actor个人状态

UOgreAI_Remote |-->UOgreAI_Pawn

cs 复制代码
    protected override void Enter_Idle(EOgreAIState inPreviousState)
    {
        base.Enter_Idle(inPreviousState);
    }

    protected override void Update_Idle()
    {
		if(myPawnForRemote.IsEnableReserveSkill)
		{
			// 드래그 및 버프 스킬은 즉시 스킬 사용.
			if(myPawnForRemote.IsDragReserveSkill || 
				myPawnForRemote.MySkillSystemForRemote.CurrentActiveSkill.IsBuffSkill ||
				myPawnForRemote.MySkillSystemForRemote.CurrentActiveSkill.isHealSKill)
			{
				ForceNextAIState = EOgreAIState.OgreAI_SkillDashFollowEnemy;
				return;
			}
		}
cs 复制代码
    // 상태 진입.  状态进入。
    protected void EnterState(EOgreAIState inEnterState)
    {
        switch(inEnterState)
        {
            case EOgreAIState.OgreAI_Idle:                  { Enter_Idle(currentAIState); DelegateAIUpdate = new FDelegateAIUpdate(Update_Idle); } break;
            case EOgreAIState.OgreAI_PortalFollow:          { Enter_PortalFollow(currentAIState); DelegateAIUpdate = new FDelegateAIUpdate(Update_PortalFollow); } break;
            case EOgreAIState.OgreAI_LeaderFollow:          { Enter_LeaderFollow(currentAIState); DelegateAIUpdate = new FDelegateAIUpdate(Update_LeaderFollow); } break;
            case EOgreAIState.OgreAI_EnemyFollow:           { Enter_EnemyFollow(currentAIState); DelegateAIUpdate = new FDelegateAIUpdate(Update_EnemyFollow); } break;
            case EOgreAIState.OgreAI_DashApproach:          { Enter_DashApproach(currentAIState); DelegateAIUpdate = new FDelegateAIUpdate(Update_DashApproach); } break;


//所以状态在于
//public enum EOgreAIState

技能系统

设置配置config

第三方插件

BestHTTP (pro)

baracuda.monitoring//本身做监控,最新的这个插件转为和 AI 机器学习有关

CutScene

参考

会走路的三百块👾

https://ooowl.fun/articles/blogs/Game/Unity/Unity-%E5%A4%A9%E5%91%BD6%E6%BA%90%E7%A0%81.html

https://www.jiaosf.com/yxym-901-1-1.html

其他

相关推荐
盐焗鹌鹑蛋8 小时前
【C++】继承
开发语言·c++
栈溢出了8 小时前
Java Lambda 表达式笔记
java·开发语言·intellij-idea
zhixingheyi_tian8 小时前
一份GC日志的解读
java·开发语言
czhaii8 小时前
串口1中断收发-C语言-MODBUS协议
c语言·开发语言
apihz9 小时前
随机驾考题目(C 照科一 / 科四 2000+ 题)免费API调用教程
android·java·c语言·开发语言·网络协议·tcp/ip
吴可可1239 小时前
C#实现CAD框选闭合图元外偏移1毫米
c#
꒰ঌ 安卓开发໒꒱9 小时前
.NET CAP入门到入土
后端·c#·.net
matlab代码9 小时前
基于matlab人脸疲劳驾驶检测系统(可使用其它人脸视频)【源码39期】
开发语言·matlab·人脸疲劳检测
zenithdev110 小时前
fastcache:为 Go 设计的低 GC 压力内存缓存
开发语言·其他·缓存·golang
想你依然心痛10 小时前
自定义RTOS内核:从零实现上下文切换与任务调度——汇编、PendSV
java·开发语言·汇编·pendsv