Unity3D中打包的示例分析
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章主要介绍Unity3D中打包的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Unity3D中打包,其过程是可以监听到事件的.例如打包开始,及打包结束,编译sh
千家信息网最后更新 2025年02月02日Unity3D中打包的示例分析
这篇文章主要介绍Unity3D中打包的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
在Unity3D中打包,其过程是可以监听到事件的.例如打包开始,及打包结束,编译shader等.
打包开始
在编辑器中实现IPreprocessBuild接口,以下是官方例子:
using UnityEditor;
using UnityEditor.Build;
using UnityEngine;
class MyCustomBuildProcessor : IPreprocessBuild
{
public int callbackOrder { get { return 0; } }
public void OnPreprocessBuild(BuildTarget target, string path)
{
Debug.Log("MyCustomBuildProcessor.OnPreprocessBuild for target " + target + " at path " + path);
}
}
打包结束
在编辑器中添加监听 PostProcessBuildAttribute
using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
public class MyBuildPostprocessor {
[PostProcessBuildAttribute(1)]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) {
Debug.Log( pathToBuiltProject );
}
}
编译shader前
在编辑器中实现IPreprocessShaders接口
using System.Collections.Generic;
using UnityEditor.Build;
using UnityEditor.Rendering;
using UnityEngine;
using UnityEngine.Rendering;
class MyCustomBuildProcessor : IPreprocessShaders
{
ShaderKeyword m_Blue;
public MyCustomBuildProcessor()
{
m_Blue = new ShaderKeyword("_BLUE");
}
public int callbackOrder { get { return 0; } }
public void OnProcessShader(Shader shader, ShaderSnippetData snippet, IList
data) {
for (int i = data.Count - 1; i >= 0; --i)
{
if (!data[i].shaderKeywordSet.IsEnabled(m_Blue))
continue;
data.RemoveAt(i);
}
}
}
打包场景
在编辑器里实现IProcessScene接口
using UnityEditor;
using UnityEditor.Build;
using UnityEngine;
class MyCustomBuildProcessor : IProcessScene
{
public int callbackOrder { get { return 0; } }
public void OnProcessScene(UnityEngine.SceneManagement.Scene scene)
{
Debug.Log("MyCustomBuildProcessor.OnProcessScene " + scene.name);
}
}
切换平台
在编辑器里实现IActiveBuildTargetChanged接口
using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
public class ActiveBuildTargetListener : IActiveBuildTargetChanged
{
public int callbackOrder { get { return 0; } }
public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget)
{
Debug.Log("Switched build target to " + newTarget);
}
}
有了这些事件,就可以很方便的在打包前后加入自己的个性化需求了
例如在打包前要删除掉一部分AB包里面所包含的测试场景,测试资源等.
以上是"Unity3D中打包的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
编辑器
接口
示例
分析
事件
内容
场景
篇文章
中实
测试
编译
个性
价值
例子
兴趣
官方
小伙
小伙伴
平台
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
延庆区发展软件开发怎么样
数据库 名字
浙江商城软件开发定制
网络安全设备产品
ips网络安全产品
衡阳移动软件开发哪家专业
移动软件开发课程设计计算器
网络安全意识的心得与思考论文
江苏科技大学互联网
网络安全学院建设项目
数据库算技术合同
web服务器安全性
网络安全形式有哪几种
分布式实时数据库多少钱
服务器管理器界面
网浪网络技术有限公司苏州
污染源企业端数据库
海西州网络安全宣传周活动
软件开发平台排行
提取数据库中的json数据
出版社专利数据库
天行代理服务器
服务器管理的强密码
数据库中什么是instance
电信公司网络安全运维工程师工资
超市商品数据库引言
深圳网络安全教育培训
艾迪系统软件开发
两个月自学软件开发
区块链软件开发科技公司