第一篇:Unity3d游戏开发之移动端完整包更新方案

由于Unity没法进行热更新,也就是局部更新,所以如果你在设计之前没有考虑好使用Lua,反射,或者其他方式实现热更新,但是又要面临游戏上线那么你可以考虑使用完整包更新,其实这对于游戏包不是很大的情况下,也是一个不错的选择,当然设计者在设计之初都想好了热更新那就宁当别论了。

Unity3d 在移动端考虑Android和Ios平台的完整包更新 实现逻辑: 首先检查本地的版本和服务器的版本是否相同,如果相同则直接进入游戏,如果不同则下载服务器的最新文件,然后根据最新文件到资源服务器下载最新的安装包

我这里有个版本文件如下图,不同的游戏对应的版本文件不同,这个看情况

??????版本号更新日志下载链接(版本比较只会比较版本号,对应的下载链接必须对应到指定的包)
0.0.0更新日志^1:更新测试1^2:更新测试2http://***/test.apk
1.0.07.24第一个版本包http:/***/test1.0.0.apk

IOS: 由于IOS平台我们的无法控制,直接跳往对应的IOS的更新目录即可

Android: 安卓平台需要做到自动更具版本强制用户更新

具体采用如下方案

using UnityEngine;
using System.Collections;

public interface IPlatformUpdate
{
    void DoPlatformUpdate(string downLoadURL);
}
using UnityEngine;
using System.Collections;

public class CPlatfromFactory 
{
    public static IPlatformUpdate CreatePlatfrom(string platfrom)
    {
        IPlatformUpdate platform = null;
        if(platfrom.Equals("Android"))
        {
            platform = new CAndroidUpdate();
        }
        else if(platfrom.Equals("IOS"))
        {
            platform = new CIOSUpdate();
        }
        return platform;
    }
}
using UnityEngine;
using System.Collections;

public class CAndroidUpdate : IPlatformUpdate
{
    public void DoPlatformUpdate (string downLoadURL)
    {
//由于自动安装需要用到Android里面的一些功能。这里就做了一个Android插件,供Unity调用。具体的是在当前的Activity里面有个DownLoadApk的方法接受一个String的参数,然后就是Android里面的功能了。
//具体Android端如何实现可以百度 ,很简单的代码,这里不再记录 AndroidJavaClass installClass
= new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject installObj = installClass.GetStatic<AndroidJavaObject>("currentActivity"); installObj.Call("DownLoadApk", downLoadURL); } }
using UnityEngine;
using System.Collections;

public class CIOSUpdate : IPlatformUpdate
{
    public void DoPlatformUpdate (string downLoadURL)
    {
//打开对应的连接,这里一般会保存在版本文件Version.txt之中 Application.OpenURL(downLoadURL); } }

 

在开发中遇到的问题:Android 手机在插usb接口的时候内存卡无法写入的,也就是无法安装新的包,需要把线拔了,这个问题纠结了好久,一直提示内存卡没有写权限。

欢迎拍砖!!!

 

转载于:https://www.cnblogs.com/ptowin/p/3876713.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值