【实战】Unity3d实战之Unity3d网络游戏实战篇(2):代码资源分离的界面系统

Unity3d实战之Unity3d网络游戏实战篇(2):代码资源分离的界面系统

  • 阅读文章前请细读以下几点:
  • 学习书籍《Unity3d网络游戏实战》 罗培羽著 机械工业出版。
  • 本文是作者在学习过程中遇到的认为值得记录的点,因此引用的代码等资源基本出资罗培羽老师的书籍 以下为个人的学习简记,与诸君共论。
  • 由于U3D的官方案例Tank Tutorial中对坦克的基本操作已经有了详尽的描述(其实是我懒..),因此本文着重于面板系统、服务端基本网络框架和客户端基本网络框架的搭建。
  • 如有疑问或者描述错误的地方,欢迎各位提出或修正,讨论交流是获取和巩固知识的重要途径之一!

代码资源分离的界面系统
 刚刚入门U3D的时候,如果要写一个界面系统肯定会瞎写一通(抱歉我菜,基础功不扎实..),比如说,当需要在其他面板的逻辑中关闭另一个面板时,通常都是xxx.enable = false就ok了,或者在每一个面板的逻辑中都写了关闭面板的public方法供其他调用,当做的游戏渐渐大了起来之后发现有些地方很不好管理,而且代码也显得凌乱,每次写新面板的时候都要重新造轮子,看着心烦。这时就要找回基础(没错,基础功不扎实说的就是我…),复习一下类的继承、虚函数、泛型编程等。要记住,我们是面向对象…编程的!
 要构建一个通用的界面系统,首先要了解到代码与资源分离是游戏程序设计的核心思想之一,因为游戏公司里,美工和程序是两个人,如果代码和资源是黏在一起的话会有很多问题产生,而且不利于代码的重复使用。
 然后构思面板的生命周期(即面板对象被创建出来后到销毁的整个过程),书中对面板周期这样定义:
 Init -> OnShowing -> OnShowed -> Update -> OnClosing -> OnClosed
 
 Init:面板初始化阶段,用于处理一些参数;
 OnShowing:面板显示前调用OnShowing,可用于处理面板中的监听事件;
 OnShowed:面板显示后调用OnShowed,可在OnShowed前插播一个面板飞入动画;
 Update:每帧更新一些东东
 OnClosing:面板关闭前调用OnClosing;
 OnClosed:面板关闭后调用OnClosed,可在OnClosed前插播一个面板飞出动画
 
 插入一段面板基类的定义:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PanelBase : MonoBehaviour {

    #region Properties
    public string skinPath;             // skin's actual path = 'Assets/Resources/' + skinPath
    public GameObject skin;             // an instance based on skinPath.
    public PanelMgr.PanelLayer layer;   // current panel's layer(equal to which group the panel belong to.)
    public object[] args;               // panel's arguments.
    #endregion

    #region Operation Cycle
    /*
     *  Panel's basic life-time:
     *      Init -> OnShowing -> OnShowed -> Update -> OnClosing -> OnClosed
     */
    /// <summary>
    /// Init the panel with args.
    /// </summary>
    /// <param name="args">panel initia arguments.</param>
    pub
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值