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

其他

相关推荐
SmalBox9 小时前
【节点】[CustomDepthBuffer节点]原理解析与实际应用
unity3d·游戏开发·图形学
灰子学技术11 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
二十雨辰11 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码11 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚11 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂11 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
pas13612 小时前
41-parse的实现原理&有限状态机
开发语言·前端·javascript
bugcome_com12 小时前
零基础入门C#:一篇搞懂核心知识点
c#
琹箐12 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
Monly2112 小时前
Java:修改打包配置文件
java·开发语言