笨木头  2018-03-27 07:57     Unity3D,Game Framework     阅读(10612)     评论(10)
转载请注明,原文地址: http://www.benmutou.com/archives/2603
文章来源:笨木头与游戏开发
本文 Game Framework 版本:3.1.1

本文 Unity3D 版本:2017.3

更多GF教程和实例:https://github.com/mutouzdl/gameframework_demo.git

 
转载请注明,原文地址:http://www.benmutou.com/archives/2603 文章来源:笨木头与游戏开发
 

虽然官方目前还没有写WebRequest组件的文档,但是,这个组件的API相对比较简单,我也简单地演示其中一个吧。
  1. API列表


    WebRequest组件用于发起短链接的请求,包括Get、Post,以上几个不同的AddWebRequest函数是用于在发生数据的时候附上post数据、Form表单数据,这个看参数名就知道了。至于userData,当然是自定义的数据,在请求成功或失败时可以获取这个自定义数据。
  2. 一个简单的Get请求
    新建一个场景(Demo7_Launch)和一个初始流程(Demo7_ProcedureLaunch),流程代码如下:
    	using GameFramework;
    	using GameFramework.Event;
    	using GameFramework.Procedure;
    	using UnityEngine;
    	using UnityGameFramework.Runtime;
    	using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
    	public class Demo7_ProcedureLaunch : ProcedureBase {
    	    protected override void OnEnter (ProcedureOwner procedureOwner) {
    	        base.OnEnter (procedureOwner);
    	        // 获取框架事件组件
    	        EventComponent Event
    	            = UnityGameFramework.Runtime.GameEntry.GetComponent<EventComponent> ();
    	        Event.Subscribe (WebRequestSuccessEventArgs.EventId, OnWebRequestSuccess);
    	        Event.Subscribe (WebRequestFailureEventArgs.EventId, OnWebRequestFailure);
    	        // 获取框架网络组件
    	        WebRequestComponent WebRequest
    	            = UnityGameFramework.Runtime.GameEntry.GetComponent<WebRequestComponent> ();
    	        string url = "http://gameframework.cn/starforce/version.txt";
    	        WebRequest.AddWebRequest (url, this);
    	    }
    	    private void OnWebRequestSuccess (object sender, GameEventArgs e) {
    	        WebRequestSuccessEventArgs ne = (WebRequestSuccessEventArgs) e;
    	        // 获取回应的数据
    	        string responseJson = Utility.Converter.GetString (ne.GetWebResponseBytes ());
    	        Log.Debug("responseJson:" + responseJson);
    	    }
    	    private void OnWebRequestFailure (object sender, GameEventArgs e) {
    	        Log.Warning ("请求失败");
    	    }
    	}
    


    使用Event组件订阅请求成功和失败事件,使用WebRequest组件的AddWebRequest发起请求,请求的地址是官方博客的一个文本文件。

    设置好初始流程后,运行游戏,如果你能看到以下日志输出,那就代表你成功了:



10 条评论
  • simon 2023-08-26 22:36:25

    入门初学,楼主用心了, 写得很清晰。 断断续续在网上找了好久资料,一直都是无从下手的感觉,总算可以跟着做些功能。
    0回复
    • 博主 笨木头 2023-08-28 09:27:08

      有用就好😎
      0回复
  • 2018-07-17 09:45:34

    强烈建议最后把所有功能者整合起来弄一个游戏。
    1回复
    • 博主 笨木头 2018-07-17 09:49:31

      虽然不算用到了所有功能,但游戏确实有了,目前还在继续更新维护:https://github.com/mutouzdl/GF_JustOneLevel
      0回复
  • 张龙 2018-04-04 20:15:56

    对啊,发发慈悲写一个完整的Demo让我这种小白入门一下吧!
    0回复
    • 博主 笨木头 2018-04-05 06:04:14

      我也是小白…一边学习一边写的…完整的demo是指什么呢?starforce简陋版算吗?
      0回复
      • 张龙 2018-04-05 09:21:08

        就是把演示一下常用的API的使用应该就够了
        0回复
        • 博主 笨木头 2018-04-05 16:37:55

          那也得等我研究完...我也是业余研究,进度确实没法保证...也希望大家多多分享自己学到的地方,互相学习,这个框架会发展的更快,资料也会更多...可惜大家都喜欢在群里讨论,太浪费了...如果大家都提issue的话,也许这个框架会有更多人关注(ง •_•)ง
          0回复
  • Fly 2018-04-04 14:29:25

    感觉以这个进展下来,估计要写上100个demo才能算入门 哈哈
    0回复
    • 博主 笨木头 2018-04-04 16:50:19

      我尽量控制在99个(〃ノωノ)
      0回复
发表评论
粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发