Unity3D中打包的示例分析
发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章主要介绍Unity3D中打包的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Unity3D中打包,其过程是可以监听到事件的.例如打包开始,及打包结束,编译sh
千家信息网最后更新 2024年10月22日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安全错误
数据库的锁怎样保障安全
怎么设置dota2自走棋服务器
服务器管理员的权限
县财政局网络安全应急演练报价
深圳软件开发师
软件开发 费用 总 比例
人工智能软件开发工资
数据库被覆盖怎么恢复
松江区管理网络技术哪家好
网吧信息网络安全
软件开发政策补贴
我的世界服务器怎么清除角色数据
数据库语句and
杭州常见的ipfs服务器
服务器带扩展柜是什么意思
共兴达软件开发面试题
长沙望城网络安全研究学校
上海新炬网络技术杭州分公司
云服务器 ss
软件开发有必要学习硬件维修吗
共享餐厅软件开发成本
保山bim软件开发工程
电视台 网络安全
只有一主0从服务器
浙江项目软件开发服务费
华为服务器售后维修电话
kms服务器激活安全嘛
上海中搜网络技术怎么样
网络技术最发达国家
软件开发 原型法
众微科技互联网金融