当前位置: 首页 > news >正文

建设网站的需求分析免费的网站cms

建设网站的需求分析,免费的网站cms,网站策划与制作,想招人去哪个平台免费Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能#xff0c;它可以让开发者在构建项目时自动执行一些操作。这个功能可以帮助开发者提高工作效率#xff0c;减少手动操作的时间和错误率。在本文中我们将介绍Unity IPreprocessBuild的使用方…Unity IPreprocessBuild Unity IPreprocessBuild是Unity引擎中的一个非常有用的功能它可以让开发者在构建项目时自动执行一些操作。这个功能可以帮助开发者提高工作效率减少手动操作的时间和错误率。在本文中我们将介绍Unity IPreprocessBuild的使用方法并提供三个使用例子帮助读者更好地理解这个功能。 Unity IPreprocessBuild的使用方法 Unity IPreprocessBuild的使用方法非常简单只需要在Unity项目中创建一个Editor文件夹然后在这个文件夹中创建一个C#脚本命名为BuildHandler.cs。在这个脚本中我们需要使用Unity的Editor命名空间并实现IPreprocessBuild接口。然后我们需要重写OnPreprocessBuild方法这个方法会在构建项目时自动执行。在这个方法中我们可以编写我们需要执行的操作下面是一个简单的例子演示了如何在构建项目时自动修改PlayerSettings using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine;public class BuildHandler : IPreprocessBuild, IPostprocessBuild {public int callbackOrder { get { return 0; } }public void OnPreprocessBuild(BuildReport report){PlayerSettings.companyName My Company;PlayerSettings.productName My Product;}public void OnPostprocessBuild(BuildReport report){Debug.Log(Build completed successfully!);} } 在这个例子中我们实现了IPreprocessBuild和IPostprocessBuild接口并重写了OnPreprocessBuild和OnPostprocessBuild方法。在OnPreprocessBuild方法中我们修改了PlayerSettings的companyName和productName属性。在OnPostprocessBuild方法中我们输出了一条日志表示构建项目已经完成。 使用例子 下面是三个使用Unity IPreprocessBuild的例子每个例子都提供了具体的实现。 例子1自动修改场景 在这个例子中我们将演示如何在构建项目时自动修改场景。 using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; using UnityEngine.SceneManagement;public class BuildHandler : IPreprocessBuild {public int callbackOrder { get { return 0; } }public void OnPreprocessBuild(BuildReport report){Scene scene SceneManager.GetSceneByName(MyScene);if (scene.IsValid()){SceneManager.SetActiveScene(scene);GameObject[] objects scene.GetRootGameObjects();foreach (GameObject obj in objects){obj.transform.position Vector3.zero;}}} } 在这个例子中我们首先获取指定的场景然后将这个场景设置为活动场景。接着我们获取场景中的所有根GameObject并将它们的位置设置为Vector3.zero。 例子2自动打包AssetBundle 在这个例子中我们将演示如何在构建项目时自动打包AssetBundle。 using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine;public class BuildHandler : IPreprocessBuild {public int callbackOrder { get { return 0; } }public void OnPreprocessBuild(BuildReport report){string[] assetPaths new string[] { Assets/Textures/MyTexture.png, Assets/Models/MyModel.fbx };AssetBundleBuild[] builds new AssetBundleBuild[1];builds[0].assetBundleName mybundle;builds[0].assetNames assetPaths;BuildPipeline.BuildAssetBundles(Assets/AssetBundles, builds, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);} } 在这个例子中我们首先指定需要打包的资源路径然后创建一个AssetBundleBuild对象并设置它的assetBundleName和assetNames属性。接着我们调BuildPipeline.BuildAssetBundles方法将这个AssetBundleBuild对象打包成一个AssetBundle并保存到指定的路径。 例子3自动加密脚本 在这个例子中我们将演示如何在构建项目时自动加密脚本。 using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEngine; using System.IO; using System.Security.Cryptography;public class BuildHandler : IPreprocessBuild {public int callbackOrder { get { return 0; } }public void OnPreprocessBuild(BuildReport report){string[] scriptPaths Directory.GetFiles(Assets/Scripts, *.cs, SearchOption.AllDirectories);foreach (string path in scriptPaths){byte[] bytes File.ReadAllBytes(path);byte[] hash MD5.Create().ComputeHash(bytes);string hashString BitConverter.ToString(hash).Replace(-, ).ToLower();string encryptedPath path.Replace(.cs, _ hashString .cs);byte[] encryptedBytes AesEncrypt(bytes, mykey, mysalt);File.WriteAllBytes(encryptedPath, encryptedBytes);File.Delete(path);}}private byte[] AesEncrypt(byte[] bytes, string key, string salt){byte[] keyBytes new Rfc2898DeriveBytes(key, Encoding.UTF8.GetBytes(salt)).GetBytes(32);byte[] ivBytes new Rfc2898DeriveBytes(key, Encoding.UTF8.GetBytes(salt)).GetBytes(16);using (Aes aes Aes.Create()){aes.Key key;aes.IV ivBytes;using (MemoryStream ms new MemoryStream()){using (CryptoStream cs new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write)){cs.Write(bytes, 0, bytes.Length);}return ms.ToArray();}}} } 在这个例子中我们首先获取所有的脚本文件路径然后遍历每个脚本文件。对于每个脚本文件我们首先计它的MD5哈希值并将这个哈希值添加到文件名中。接着我们使用AES算法对这个脚本文件进行加密并将加密后的内容保存到新的文件中。最后我们删除原始的脚本文件。 结论 Unity IPreprocessBuild是一个非常有用的功能可以帮助发者提高工作效率减少手动操作的和错误率。在本文中我们介绍了Unity IPreprocessBuild的使用方法并供了三个使用例子帮助读者更好地解这个功能。希望这篇文章对读者有所帮助。 本文由博客一文多发平台 OpenWrite 发布
http://www.hkea.cn/news/14566621/

相关文章:

  • 域名服务器怎么设置网络优化工资一般多少
  • 17网站一起做网店打不开江阴网站设计哪家好
  • p2p网站数据分析怎么做建设春风摩托车官方网站
  • 怎么用word做网站网页设计图片比例
  • 石景山网站建设设计公司济南网站建设 选搜点o
  • 上海网站设计流程精准营销服务
  • 东莞热的建设网站青岛互联网平台公司
  • 网站建设一般多少钱官网办公室平面设计图
  • 亚马逊购物网站手机之家中关村在线
  • 微信小程序如何申请seo公司是干嘛的
  • 常营网站建设公司长治怎么做平台软件
  • 浦口区网站建设如何进入网站后台管理网站
  • 资源网站不好找了国家工商信息公示系统
  • 企业网站建设的原则县城做网站
  • 网站建设五站合一做ghost系统的网站有哪些
  • 东莞网站建设业务的公司js博客网站开发计划书
  • 做类似淘宝的网站做棋牌网站
  • 商业网站 模板门户网站asp源码
  • 无锡企业如何建网站前端开发好学吗
  • 常见的pc端网站布局国内最大的搜索引擎
  • 做网站没有签合同可以退款吗做期货在哪个网站看消息
  • 备案期间需要关闭网站宁波外贸公司排名2022
  • 安康市城市建设局网站交换链接营销的成功案例
  • WordPress网站自媒体模板济南教育平台网站建设
  • 安徽城乡建设厅网站证件肉菜配送网站建设
  • 可以上传软件的网站wordpress搬家到新浪
  • 江门做网站软件烟台网页制作
  • 贵港北京网站建设网页浏览器没有声音
  • 想自己做微信网站的工作discuz和wordpress并发
  • 苏州网站怎么做网站建设与管理自考本