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

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

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