当前位置:   article > 正文

unity打包技巧_unity打包设置

unity打包设置

打包准备:

1.android
需要jdk 和android sdk ,如果有使用C++的库,还需要NDK,只有将.so文件放在/Assets/Plugins/Android/libs下,Unity才会将.so文件识别为共享库,并在打包时将之拷贝到合适的地方。

unity2019 需要从hithub下载,打开hithub-安装,清空unity版本列表,然后从unity官网,选中hithub下载,即可
在这里插入图片描述

在这里插入图片描述

自带打包步骤:
1.选择平台,打开 file - Build Settings,可以选PC ,Android,IOS
在这里插入图片描述2.打包设置
splash Image:个人版可设置不显示 ,在项目ProjectSettings目录下,找到ProjectSettings.asset文件,用记事本打开,搜索m_ShowUnitySplashScreen,将后面的1改为0,保存,运行。在这里插入图片描述
手动打包:

//版本号
PlayerSettings.bundleVersion = CustomDefine.clientVersion;
//API 兼容性等级
PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Android,ApiCompatibilityLevel.NET_2_0_Subset);
//最低版本
PlayerSettings.Android.minSdkVersion = AndroidSdkVersions.AndroidApiLevel26;
//目标版本
PlayerSettings.Android.targetSdkVersion = AndroidSdkVersions.AndroidApiLevel26;
//安装位置 1.自动 auto 2.优先外部扩展 PreferExternal
PlayerSettings.Android.preferredInstallLocation = AndroidPreferredInstallLocation.Auto;
//使用Gradle进行构建,需要Android SDK与Gradle支持,Gradle必须要求自己签名
EditorUserBuildSettings.androidBuildSystem = AndroidBuildSystem.Gradle;
//设置包名
PlayerSettings.applicationIdentifier = "com.android.com";
//产品名字
PlayerSettings.productName ="game name";
//定义符
PlayerSettings.SetScriptingDefineSymbolsForGroup(BuildTargetGroup.Android,"");

//执行打包 场景名字,打包路径
BuildPipeline.BuildPlayer(GetBuildScenes(), path, BuildTarget.Android, BuildOptions.None);


//在这里找出你当前工程所有的场景文件,假设你只想把部分的scene文件打包 那么这里可以写你的条件判断 总之返回一个字符串数组。
static string[] GetBuildScenes()
{
    List<string> names = new List<string>();
    foreach (EditorBuildSettingsScene e in EditorBuildSettings.scenes)
    {
        if (e == null)
            continue;
        if (e.enabled)
            names.Add(e.path);
    }
    return names.ToArray();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

PC打包
在这里插入图片描述

//软件名字
PlayerSettings.productName = "game name";
//版本号
PlayerSettings.bundleVersion = "1.0";
//unity是否全屏
PlayerSettings.defaultIsFullScreen = false;
//默认本地分辨率
PlayerSettings.defaultIsNativeResolution = true;
//屏幕宽度
PlayerSettings.defaultScreenWidth = 1280;
//屏幕高度
PlayerSettings.defaultScreenHeight = 820;

//启动时,弹窗选择分辨率
PlayerSettings.displayResolutionDialog = ResolutionDialogSetting.Disabled;
PlayerSettings.SetAspectRatio(AspectRatio.Aspect16by9,true);

//是否显示启动图
PlayerSettings.SplashScreen.show = true;
//是否显示启动logo
PlayerSettings.SplashScreen.showUnityLogo = false;
//执行打包
BuildPipeline.BuildPlayer(GetBuildScenes(),path,BuildTarget.StandaloneWindows,BuildOptions.None);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

IOS打包

打包后,需要将代码复制到xcode运行,需要将C#代码通过il2cpp转成cpp。

关于热更

1.为啥需要热更?
C#是编译型语言【不准确】,代码会先被编译成IL【Intermediate Language】中间层伪汇编语言,IL再解释成机器码,解释的过程可以在运行之前【打包】,也可以在运行时【热更】。

JIT【just in time】: 将IL解释为所在平台的机器码, 需要存放到一段具有:可读、可写、可执行的内存空间,然后修改CPU中的指令指针寄存器中的地址,让CPU执行之前解释出来的机器码。

AOT【静态编译】:c/c++都是需要本地编译完成后,然后运行编译后的文件,不能动态的修改代码.

因为JIT要申请可执行的内存空间,为了安全,IOS拒绝给与这样的权限。AOT是可以的。

2.主流热更方案
ILRuntime:
unity官方主推,纯C#实现,快速、方便且可靠的IL运行时。
文档说明:点击这里
工程Demo: 点击这里下载
视频教程:点击这里观看

如何导入ILRuntime?

//在第一行,添加这行配置
"scopedRegistries": [
  {
    "name": "ILRuntime",
    "url": "https://registry.npmjs.org",
    "scopes": [
      "com.ourpalm"
    ]
  }
],

//如果上面这个配置,在Package Manager列表刷新不出来,可以在dependencies添加如下:
com.ourpalm.ilruntime": "1.6.7"  
//版本根据自己项目需要配置即可
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Package Manager安装后,可导入ILRuntime示例Demo,安装的类库文件在:Library/PackageCache目录下
在这里插入图片描述
导入ILRuntime示例demo若是有Unsafe code报错,可在PlayerSettings勾选:Allow ‘unsafe code’ code即可。

Lua:
Lua是解释型语言,不用编译,在运行时能动态解释Lua代码并运行。解决方案成熟,对于C++的同学可能习惯用Lua。

Lua与unity交互分析 引用这里

tolua学习
Lua tolua下载地址 c#与lua相互调用

lua配置:Assets/Source/LuaConst.cs
核心框架代码:Assets/tolua
核心逻辑代码:Assets/resource/lua
可供lua调用的C#类的绑定类:Assets/Source/Generate 


//上述路径可根据习惯调整:Assets/Editor/Custom/CustomSettings.cs
public static string saveDir = Application.dataPath + "/Source/Generate/"; 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/108894
推荐阅读
相关标签
  

闽ICP备14008679号