Unity3d 周分享(9期 2018.12.31)

2024-05-03 21:08
文章标签 分享 31 unity3d 2018.12

本文主要是介绍Unity3d 周分享(9期 2018.12.31),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为搞技术类博客的csdn居然能在点击发表文章 内容全部丢失,不是第一次遇到了 ,弄一个文章浪费多长时间。  

-------------------------------------------------

选自过去1~2周的内容: https://twitter.com/unity3d   和各种其他来源吧   

懒得重新弄了, 抱歉~

 

1)、 今天看到 文档中提到

If you enable Occlusion Culling it can significantly increase performance, but it occupies more disk space and RAM because the Unity Umbra integration bakes the occlusion data during the build and Unity needs to load it from disk to RAM while loading a Scene.

如果启用遮挡剔除,它可以显着提高性能,但它占用更多磁盘空间和RAM,因为Unity Umbra集成在构建期间烘焙遮挡数据,Unity需要在加载场景时将其从磁盘加载到RAM。

不仅仅静态、动态批处理有这个问题~~~

 

2)、 Unity摄像机的 Frustum Culling 视锥体剔除。

在Unity 2017.1 中做了优化, 只会剔除Camera关心的层, 这个也是首先进行的步骤。

其中还提供了 :Camera.layerCullDistances https://docs.unity3d.com/ScriptReference/Camera-layerCullDistances.html?_ga=2.247849863.1202346539.1545618055-1366382285.1535636176 针对指定层设置剔除距离~~

 

3) 您可以在更改脚本后进行编译, 而无需将焦点返回到Unity编辑器。 “UnityCompileInBackground ”

https://github.com/baba-s/unity-compile-in-background

 

例如,如果在Visual Studio中编辑并保存代码, 可以直接编译, 不用等回到Unity中。

 

 

4)、 UGUI 扩展 'Unity-SafeAreaCanvas',可以使用对应iPhone X / XS安全区域的画布

https://github.com/nkjzm/Unity-SafeAreaCanvas

 

 

 

 

 

另外一个比较有用的项目:

https://github.com/Syy9/GameViewSizeChanger

“GameViewSize Changer”,可以在游戏视图中查看iPhone X / XS的安全区域

 

 

 

5)、 Unity在导出 Android的Gradle项目时调用“IPostGenerateGradleAndroidProject” 回调

 

https://docs.unity3d.com/ScriptReference/Android.IPostGenerateGradleAndroidProject.html

using UnityEditor.Android; using UnityEngine; public class Example : IPostGenerateGradleAndroidProject { public int callbackOrder { get { return 0; } } public void OnPostGenerateGradleAndroidProject( string path ) { Debug.Log( path ); } }

 

在生成Gradle项目和构建开始之间的期间 触发回调

调用Internal 构建 方式 不会被调用

 

 

 

6)、 如何使Console 窗口中显示的“warning CS0649: Field is never assigned to”警告无效

using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private GameObject m_gameObject; private void Awake() { Debug.Log( m_gameObject ); } }

Unity Console窗口中会显示警告,因为尚未初始化应用SerializeField属性的变量 。

因此,将名为“csc.rsp”的文件添加到Unity项目中 。 写上内容 -nowarn:0649

在“csc.rsp”文件中描述的状态下编译时,不会输出上述警告

 

由于可能无法输出重要警告,我认为使用时应注意

 

 

警告不仅仅在 Unity中, 那么在 Visual Studio 上:

using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private int m_value; private void Start() { Debug.Log( m_value ); } }

上面显示警告。

因此,将此脚本添加到Unity项目的“Editor”文件夹中,

关闭Visual Studio并从Unity再次启动Visual Studio。

 

using SyntaxTree.VisualStudio.Unity.Bridge;

using System.IO;

using System.Linq;

using System.Text;

using System.Xml.Linq;

using UnityEditor;

 

[InitializeOnLoad]

public static class ProjectFileHook

{

static ProjectFileHook()

{

ProjectFilesGenerator.ProjectFileGeneration += OnGeneration;

}

 

private static string OnGeneration( string name, string content )

{

var document = XDocument.Parse( content );

var ns = document.Root.Name.Namespace;

var list = document.Root

.Descendants()

.Where( x => x.Name.LocalName == "PropertyGroup" )

.Descendants()

.Where( x => x.Name == ns + "NoWarn" )

;

 

foreach ( var xe in list )

{

xe.Value = xe.Value + ";0649";

}

 

var stream = new Utf8StringWriter();

document.Save( stream );

 

return stream.ToString();

}

 

private sealed class Utf8StringWriter : StringWriter

{

public override Encoding Encoding { get { return Encoding.UTF8; } }

}

}

 

警告不会在Visual Studio中输出

由于可能无法输出重要警告,我认为使用时应注意

https://developercommunity.visualstudio.com/content/problem/254578/cant-disable-warning-cs0

这篇关于Unity3d 周分享(9期 2018.12.31)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957653

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5