平台相关处理 Platform

1个基础类和4个继承类(android ios windows editor),基础类提供虚函数,基础方法,以及通过该类的单例选中平台。继承类更具自身平台决定重写方法。
基础类包括以下内容:
单例选择平台。
2种路径的获得。其中一种使用file://这种方式。解释如下:
c:\ 这样的地址是不能放在超联接中的。
file:/// 这样的可以放在超联接中。是url(通用资源定位符)中的文件定位。用于ie浏览及internet定位。用来访问你的本地硬盘上的某个文件
平台sdk处理,平台声音管理,以及一些不是很懂的东西。
对应android平台,继承类之一,包括以下内容:
初始化,拿到android与unity通信的几个对象,包括,处理声音,图片,资源等。
2种路径的获得,重写,从android中拿到对应的位置信息。
之后的处理sdk相关的信息都是通过unity调用android函数完成,包括,支付,登录,声音管理,资源管理等。
部分代码如下:
基础类:
case UnityEngine.RuntimePlatform.Android:
    s_instance = new Platform.Android.PlatformAndroid();
    break;
public virtual string GetPath(string relativePath)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(UnityEngine.Application.dataPath);
    sb.Append("/../resource/");
    sb.Append(relativePath);
    return sb.ToString();
}
public virtual string GetBundlePath(string relativePath)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("file://");
    sb.Append(UnityEngine.Application.dataPath);
    sb.Append("/../resource/");
    sb.Append(relativePath);
    return sb.ToString();
}
android平台类:
AndroidJNI.AttachCurrentThread();
AndroidJavaClass cls = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
m_AJO = cls.GetStatic<AndroidJavaObject>("currentActivity");
GetAndroidPath();
cls = new AndroidJavaClass("com.xxx.utils.MyVoiceManager");
m_AJOVoiceManager = cls.CallStatic<AndroidJavaObject>("getInstance");

public override string GetPath(string relativePath)
{
    StringBuilder sb = new StringBuilder();
    sb.Append(m_DataDir);
    sb.Append(NomalizePath(relativePath));
    string fullPath = sb.ToString();
    if (File.Exists(fullPath))
    {
        return fullPath;
    }
    return new StringBuilder().Append(Application.streamingAssetsPath).Append("/").Append(NomalizePath(relativePath)).ToString();
}

public override void InitSDK()
{
    m_AJO.Call("initSDK");
}
public override void GenPhoto(int type)
{
    m_AJOMyPictureManager.Call("genPicture", type);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值