iiiCircle
软件改变世界!
展开
-
Unity3D 大型游戏 MOBA类手机游戏 状态机在游戏中的应用(18)
本文固定链接 http://blog.csdn.net/u013108312/article/details/78824724 状态机在游戏中应用还是比较广泛的,在我以前博客中关于游戏框架中有介绍,感兴趣的朋友可以去看看。那个框架是企鹅公司里面的游戏框架,好了废话不多说,直接进入今天的主题,状态机的应用。using UnityEngine;using System.Collections;na原创 2017-12-17 13:32:13 · 11305 阅读 · 1 评论 -
15.Unity3D商业游戏源码研究-变身吧主公-PanelShop
点击购买后出来购买商品的面板。显示购买数量。using UnityEngine;using System.Collections;public class PanelShop : PanelBase { #region 初始化相关 protected override void OnInitSkin() { base.SetMainSkinPath("Ga原创 2017-04-20 10:01:16 · 2550 阅读 · 0 评论 -
14.Unity3D商业游戏源码研究-变身吧主公-SelfShopItem
using UnityEngine;using System.Collections;using System.Collections.Generic;public class SelfShopItem : MonoBehaviour { public List<GameObject> selfList = new List<GameObject>(); /// <summary原创 2017-04-19 20:19:21 · 2213 阅读 · 0 评论 -
13.Unity3D商业游戏源码研究-变身吧主公-SceneShop
using UnityEngine;using System.Collections;using System.Collections.Generic;public class SceneShop : SceneBase { #region 初始化相关 protected override void OnInitSkin() { base.SetMain原创 2017-04-19 19:39:59 · 2478 阅读 · 0 评论 -
12.Unity3D商业游戏源码研究-变身吧主公-层级管理-LayerMgr
using UnityEngine;using System.Collections;using System.Collections.Generic;using System;public class LayerMgr : MonoBehaviour{ #region 初始化 private static LayerMgr mInstance; public sta原创 2017-04-19 16:29:36 · 2360 阅读 · 0 评论 -
11.Unity3D商业游戏源码研究-变身吧主公-SceneChat
using UnityEngine;using System.Collections;public class SceneChat : SceneBase { #region 初始化相关 protected override void OnInitSkin() { base.SetMainSkinPath("Game/UI/Chat/SceneChat")原创 2017-04-19 14:42:19 · 2086 阅读 · 0 评论 -
10.Unity3D商业游戏源码研究-变身吧主公-PanelPlayInfo
using UnityEngine;using System.Collections;public class PanelPlayInfo : PanelBase { #region 初始化相关 protected override void OnInitSkin() { base.SetMainSkinPath("Game/UI/Home/PanelPl原创 2017-04-19 13:55:18 · 2624 阅读 · 0 评论 -
9.Unity3D商业游戏源码研究-变身吧主公-PanelBase
using UnityEngine;using System.Collections;using System.Collections.Generic;public class PanelBase : UIBase { protected PanelType _type; public PanelType type { get {原创 2017-04-19 13:53:54 · 2668 阅读 · 0 评论 -
8.Unity3D商业游戏源码研究-变身吧主公-PanelMgr
using UnityEngine;using System.Collections;using System.Collections.Generic;using System;public class PanelMgr { #region 初始化 protected static PanelMgr mInstance; public static PanelMgr Ins原创 2017-04-19 13:51:20 · 3476 阅读 · 0 评论 -
7.Unity3D商业游戏源码研究-变身吧主公-SceneLoding
using UnityEngine;using System.Collections;using System.Collections.Generic;public class SceneLoding : SceneBase, INotifier{ private UISlider mSlider; private UILabel mLabel; protected o原创 2017-04-18 20:57:41 · 1672 阅读 · 0 评论 -
16.Unity3D商业游戏源码研究-变身吧主公-战斗-IState,StateMachine
using UnityEngine;using System.Collections;public interface IState { /// <summary> /// 获取这个状态机的状态 /// </summary> /// <returns></returns> uint GetStateID(); /// <summary> /原创 2017-04-21 11:39:15 · 765 阅读 · 0 评论 -
17.Unity3D商业游戏源码研究-变身吧主公-战斗-StateBase,PlayerBase
using UnityEngine;using System.Collections;public abstract class StateBase : IState { protected PlayerBase mPlayer; public StateBase(PlayerBase player) { mPlayer = player; }原创 2017-04-21 11:43:07 · 1262 阅读 · 0 评论 -
Unity3D 大型游戏 MOBA类手机游戏 部分重点 登陆过程(17)
原文链接http://blog.csdn.net/u013108312/article/details/785741391.ResourceManager 这个是我们进入的第一个游戏场景,我们可以看到游戏一种挂载了2个脚本,一个是游戏资源管理类,一个是游戏资源的更新。开始主要是验证服务器资源版本和本地的资源是否一致,一致的话就不在更新,进入游戏登录界面。资源更新大家可以把资源放在CDN加速器上。原创 2017-11-19 14:04:20 · 11812 阅读 · 1 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 GameView-BaseWindow(16)
本文固定链接: http://blog.csdn.net/u013108312/article/details/78335748 这个地方比较简单就直接上代码了。 没有写博客了,可能也是最近比较忙的原因吧,不过从今天开始 持续更新最后一站的讲解,后期可能会讲服务器C++编程部分。using UnityEngine;using System.Collections;using BlGame;原创 2017-10-24 22:35:35 · 10557 阅读 · 1 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 GameView-LoginWindow(17)
本文固定链接 http://blog.csdn.net/u013108312/article/details/78360607登录界面也就是游戏进入的第一个界面了。 有个BaseWindow以后游戏的任何一个界面都可以去继承它,这样写起来每个思路就会变的清晰的多了。在游戏中可能有的人看不懂代码怎么运行的,可能是因为对事件和状态机的管理不太熟悉,不过没事,后期都会进行更新这些代码的解读,就这样一步原创 2017-10-27 08:31:55 · 11120 阅读 · 0 评论 -
1.蛮牛ARPG网络实战-客户端 服务端测试
using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading.Tasks;namespace server{ class Program {原创 2017-04-23 19:29:33 · 1388 阅读 · 0 评论 -
21.Unity3D商业游戏源码研究-变身吧主公-战斗-MonsterPlayerState,Attack,Hit,Idle
using UnityEngine;using System.Collections;using DG.Tweening;public class MonsterPlayerStateAttack : StateBase { public MonsterPlayerStateAttack(PlayerBase player) : base(player) {原创 2017-04-21 11:49:53 · 1155 阅读 · 0 评论 -
20.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateIdle
using UnityEngine;using System.Collections;public class MainPlayerStateIdle : StateBase { public MainPlayerStateIdle(PlayerBase player) : base(player) { } public override uint G原创 2017-04-21 11:47:41 · 831 阅读 · 0 评论 -
19.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateHit
using UnityEngine;using System.Collections;public class MainPlayerStateHit : StateBase { public MainPlayerStateHit(PlayerBase player) : base(player) { } public override uint Get原创 2017-04-21 11:46:43 · 579 阅读 · 0 评论 -
18.Unity3D商业游戏源码研究-变身吧主公-战斗-MainPlayerStateAttack
using UnityEngine;using System.Collections;using DG.Tweening;public class MainPlayerStateAttack : StateBase { public MainPlayerStateAttack(PlayerBase player) : base(player) { }原创 2017-04-21 11:45:41 · 1451 阅读 · 0 评论 -
6.Unity3D商业游戏源码研究-变身吧主公-SceneLogin
using System;using System.Collections.Generic;/// <summary>/// 收听器/// </summary>public interface INotifier{ void OnReceiveData(uint cmdId, object param1, object param2);}using UnityEngine;us原创 2017-04-18 20:39:08 · 1662 阅读 · 0 评论 -
5.Unity3D商业游戏源码研究-变身吧主公-TestSeneceMgr
using UnityEngine;using System.Collections;public class TestResMgr : MonoBehaviour { // Use this for initialization void Start() { //GameObject obj = ResourcesMgr.GetInstance().Cre原创 2017-04-18 20:37:27 · 1537 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager2(5)
上节我们讲了Assetbundle打包顺序,接下来我们讲加载顺序。 上节,我们知道打包完成之后,我们生成一个xml文档,里面存储的是所有assetbundle资源的信息。大概有些人会问了,有什么要生成这个。我们可以想下,你加载Assetbundle是不是要知道他依赖哪些assetbundle,是不是要知道他的大小,不然你进度条怎么做。我们预先加载这些资源的信息,可以帮我们省了很多事情。比如文档xm原创 2017-03-06 17:33:11 · 1466 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码部分重点 对象池GameObejctPool(4)
本章我们来学习下最后一站中的对象池技术。 何为对象池,相信大部分的程序员都知道其概念和用法。说白了,就是为了提高性能而产生的这项技术。 那么,到底什么时候,什么地方用到对象池呢?原创 2017-03-06 17:27:45 · 1414 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 整体框架(3)
本文固定链接:原创 2017-03-06 17:22:54 · 3637 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager(2)
本文固定链接:http://blog.csdn.net/u013108312/article/details/60583353在最后一战中,ResourceManager类起到了举足轻重的作用。 几乎游戏中的所有资源都是靠他加载的。 他采用的是两种方式加载 1.Assetbundle 2.Resource 他分这两种是目的的,在游戏开发阶段,我们不可能每做完一个模型资源,就打包一次,太费时原创 2017-03-06 17:13:53 · 2641 阅读 · 1 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点WindowManager(1)
在最后一站中,几乎所有的UI界面都是这个WindowManager管理的,那么他是如何调度的呢?我们来看看。首先,我们知道游戏UI有着不同的类型,比如有登陆界面,专门管理登陆。战斗界面,专门管理战斗。用户界面,专门管理用户属性等等。既然UI有分类型,那么我们要设计不同类型的UI类,每个类负责自己的功能。然后WindowManager管理这些不同类型的UI类。虽然UI有着不同的类型,但是他们本质都是一原创 2017-03-06 10:41:37 · 7516 阅读 · 1 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(三)(9)
接着上节我们讲了SendMsg()方法,接下来我们讲下NetworkManager里面的接收消息处理。因为接收消息需要不断接收消息,然后不断的进行处理。所以我们去看看NetworkManager里面的Update方法,因为它在JxBlGame的Update里面不断执行。在第一个if判断,因为我们连接上之后m_Client != null,所以执行,先执行DealWithMsg()原创 2017-03-09 17:40:12 · 1829 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(二)(8)
上节我们讲到发送登陆消息给登陆服务器。原创 2017-03-09 09:46:51 · 1430 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(一)(7)
本文固定链接:http://blog.csdn.net/u013108312/article/details/60954670 网络通信在网络游戏中扮演者重要角色,所有交互几乎通过它来和服务器沟通并反馈。今天我们来讲讲最后一站中的Network部分。在讲这节之前,有些读者可能还不是很了解网络通信。这里我简单的讲解下,就拿最常见的LOL游戏吧,为什么我们在战斗中能够看见对方英雄移动等各种操作。就是对原创 2017-03-09 09:41:16 · 2119 阅读 · 1 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点GameStateManager(6)
本文固定链接:http://blog.csdn.net/u013108312/article/details/60873965今天我们来看看最后一站中的游戏状态机。首先要明白一点,游戏状态机是干什么用的?为何要有游戏状态这一说?不知道你注意到了没有,每款游戏都有自己的生命周期。从点击桌面上的游戏快捷方式开始,就进入游戏的生命周期登陆->创建角色->进入主界面->开始游戏也正是这样的生命周期,所以我们原创 2017-03-08 15:52:09 · 2334 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(一)(10)
最后一站中,前面几张基本上吧游戏整体的架构都讲了。我在第一期中也讲过,框架搭好之后,接下来无非就是收发消息,然后做收到消息的处理。今天我们讲的是比较核心的匹配战斗。所谓匹配就是类似LOL里面的匹配系统。首先贴一张匹配的UI:原创 2017-03-10 10:03:37 · 2935 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(三)(12)
上节课讲到加载游戏状态完成后就进入到PLayState游戏状态。 在讲这个之前,我们先来了解下,最后一站中有哪些实体。 1.Player玩家(自身玩家+其他玩家) 2.Builder建筑 3.Soldier士兵 4.Monster野怪 5.AltarSoldier超级士兵 这些实体类型都有共同的特点,所以最后一站中抽象出了实体基类–>Ientity类型。 我们再回来看PlayStat原创 2017-03-13 16:50:06 · 5235 阅读 · 1 评论 -
4.Unity3D商业游戏源码研究-变身吧主公-UIBase
using UnityEngine;using System.Collections;using System.Collections.Generic;public class UIBase : MonoBehaviour { #region 数据定义 /// <summary> /// 所有的boxcollider /// </summary> pri原创 2017-04-18 20:07:33 · 1190 阅读 · 0 评论 -
3.Unity3D商业游戏源码研究-变身吧主公-SceneBase
using UnityEngine;using System.Collections;using System.Collections.Generic;public class SceneBase : UIBase{ //protected object[] _sceneArgs; ///// <summary> ///// 场景init参数 ///// </s原创 2017-04-18 20:06:35 · 804 阅读 · 0 评论 -
2.Unity3D商业游戏源码研究-变身吧主公-SceneMgr
using UnityEngine;using System.Collections;using System.Collections.Generic;using System;public class SceneMgr{ #region 初始化 protected static SceneMgr mInstance; public static SceneMgr Ins原创 2017-04-18 19:47:31 · 814 阅读 · 0 评论 -
1.Unity3D商业游戏源码研究-变身吧主公-ResourcesMgr
using UnityEngine;using System.Collections;public class ResourcesMgr : MonoBehaviour{ #region 初始化 private static ResourcesMgr mInstance; public static bool hasIntance { get原创 2017-04-18 18:39:53 · 3413 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 显示FPS
Unity3D 显示FPS脚本。using UnityEngine;using System.Collections;public class ShowFPS : MonoBehaviour { public static ShowFPS Instance { private set; get; } void OnEnable()原创 2017-03-14 09:46:23 · 1399 阅读 · 0 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 英雄释放技能(15)
上几节课我们已经讲了英雄的状态机管理和同步移动相关的。 今天这节课我们来讲讲英雄是怎么释放技能(包括普通攻击)。 这里我先来讲下技能同步原理。 就拿LOL这个游戏来说,他客户端的技能是先表现出来,然后服务器进行验证,接着再发送验证结果给客户端,最后客户端再修正表现结果。什么意思? 比如,LOL中的瞎子(盲瞎),他的q技能释放出去,刚好能打中敌人。 但是网络延迟比较卡,那么服务器发送回的验证原创 2017-03-13 17:28:03 · 6934 阅读 · 2 评论 -
Unity3D 大型游戏 最后一站 源码 部分重点 英雄玩家同步移动(14)
上节课,我们讲到英雄实体的状态机,每个实体都有自己不同的状态。那么今天我们主要具体讲讲Run状态下的与服务器同步移动。 在实时战斗游戏中,同步一直是游戏客户端和服务器编程人员最头痛的,那么怎么样才能做到所有的玩家画面能够同步。 这里有好多种方法,大家可以好好看看这篇博客: http://dev.gameres.com/Program/Abstract/DeadReckoning.htm 这里原创 2017-03-13 17:09:49 · 5024 阅读 · 0 评论