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

其他

相关推荐
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹5 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
SmalBox5 天前
02-07-原理篇-文件系统与跨平台适配
unity3d·游戏开发
只睡四小时5 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车5 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁5 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19915 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超5 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int5 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++