unity

shader入门精要读书笔记10 其他相关内容(注意事项等)

心已入冬 提交于 2020-02-07 02:23:45
一、Debug 最讨厌康熙的第8个儿子。 三种Untiy Shader的调试方法: 1.使用假彩色图像 假彩色图像是指用假彩色技术生成的一种图像(照片为真彩色图像),一张假彩色图像可以用来可视化一些数据。 主要思想就是把需要调试的变量映射到[0,1]之间,输出到屏幕上,通过屏幕上的像素颜色判断值是否正确。 可见112页详细介绍。 2.使用 Visual Studio vs中提供了对Unity Shader的调试功能----Graphics Debugger。 通过Graphics Debugger,我们不仅可以查看像素颜色、位置信息,还可以对顶点着色器和片元着色器进行单步调试。 3.帧调试器 Unity官方针对渲染的调试器。 位置:Window–>Frame Debugger 具体介绍可见114页。 二、渲染平台差异 1.坐标差异 OpenGL 与 DirectX 水平相同,竖直方向上相反。 屏幕空间坐标 DX(0,0) 在左上角,OpenGL在左下角。 大多数情况不会有影响,在我们使用渲染到纹理技术时,如果不采取措施,可能导致纹理翻转,但这种情况通常Unity会帮助我们处理。 但如果我们开启了抗锯齿操作时(Edit->Project Setting->Quality->Anti Aliasing),并在此时我们使用到了渲染纹理技术,这时我们得到的屏幕图像并不会被Unity翻转

Unity3D事件函数的执行顺序

随声附和 提交于 2020-02-07 02:20:26
In Unity scripting, there are a number of event functions that get executed in a predetermined order as a script executes. This execution order is described below: 在Unity脚本中,有一些按照预定顺序执行的事件函数,脚本即是按照此顺序执行的。这个执行顺序描述如下: First Scene Load 第一个场景加载 These functions get called when a scene starts (once for each object in the scene). 这些函数在场景开始时就被调用了(对场景中的每个对象执行一次)。 Awake: This function is always called before any Start functions and also just after a prefab is instantiated. Awake:这个函数是在Start函数之前以及预制物体实例化后被调用。 OnEnable: (only called if the Object is active): This function is called just after the object

Android和unity的相互调用

强颜欢笑 提交于 2020-02-07 00:27:51
由于Android里的一些操作无法直接在unity里面直接实现 所以需要Android和unity相互调用配和去实现一些功能 协作的方式可分为两种形式 由unity打包出一个工程在Android studio里面加以补充完善,最后在Android studio打包成apk 由Android提供插件给unity使用,在unity中通过调用插件实现相关功能,最后在unity打包成apk 我们主要谈谈第二种方式 导出Jar包+扩展MainActivity+Java主导(官方不推荐) 1、在Android studio新建一个工程 2、在工程中新建一个Android Library模块 3、在该模块中新建一个空Activity,删掉该Activity的布局文件 4、将unity中的该目录下的classes.jar文件粘贴到Android studio中新增模块的libs下面 2018.3.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes 接下来添加这个库 5、修改新增模块的Mainifest.xml中的部分 (可直接复制app中的Mainifest.xml,删除报错的地方) 加上 6、在新增模块的MainActivity中写入想要新增的方法 注意:要修改继承的类 7

Unity Polybrush与顶点色着色器

给你一囗甜甜゛ 提交于 2020-02-06 09:07:12
  今年年初,我们宣布了ProBuilder和Polybrush将正式成为Unity的一部分。我们已经详细介绍过使用ProBuilder快速关卡建模,而Polybrush可以帮助我们完成粗略的雕刻、纹理混合、对象散布和顶点色绘制等功能。      通常为了处理顶点色,必须进行3D程序代码编写并估计最终结果。但有了Polybrush后,我们可以直接在编辑器中进行绘制,然后看到处理后的效果。   本文将展示一些使用顶点色的着色器示例,介绍如何将Polybrush和它们一起使用。   获取Polybrush   你可以访问Asset Store资源商店下载Polybrush :   https://www.assetstore.unity3d.com/cn/?stay#!/content/111427   下载完毕后导入资源包,点击菜单栏,选择Tools > Polybrush > Polybrush Window。      打开Polybrush 窗口中,如下图所示,我们可以看见四个功能选项:   雕刻(Sculpting)   顶点色绘制(Vertex Color Painting)   对象散布(Object Scattering)   纹理混合(Texture Blending)      功能介绍   1   雕刻   该功能拥有二个标签页,第一个标签页用于升降顶点位置

Unity性能优化------渲染优化(GPU)之LOD(Level of detail)

邮差的信 提交于 2020-02-06 08:24:28
LOD(Level of detail): 根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节,获得高效率的渲染运算 上图展示了同一个物体的三种模型,从左到右面数和细节依次有所提升 创建一个空物体并添加LOD Group组件,为LOD 0-2添加对应的Prefabs,我们从远拉近摄像机就会看到不一样的渲染效果,即在游戏中会根据我们离物体的远近来选择渲染不同精度的模型,提高性能的利用率 来源: CSDN 作者: 傻子是小傲娇 链接: https://blog.csdn.net/love_phoebe/article/details/103652081

unity Xml文件的读取

断了今生、忘了曾经 提交于 2020-02-06 03:06:47
首先吧需要读取的文件放到该目录下。(我这里读取的是名为item的文件),注意字母不要打错。 这里是item里面的内容 <item> <item1> <id>1</id> <name>china</name> <year>2016</year> </item1> <item2> <id>2</id> <name>usa</name> <year>2017</year> </item2> </item> 接着进行读取XML using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Xml; using System.IO; public class XMLSlote : MonoBehaviour { void Start() { parseXml(); } //解析xml void parseXml() { //也可以前面加上@,区别就是有@的话,双引号里面的内容不转义,比如" \" " //string filePath = Application.dataPath+@"/Resources/item.xml"; string filePath = Application.dataPath + "/Resources/item.xml"; if (File

关于unity3d发布WebGL出错需要注意的问题

会有一股神秘感。 提交于 2020-02-05 09:31:44
一直用unity3d在做ios、安卓和windows这些平台的开发,最近有需求要发布到网页上,才发现这有一个大坑 打包WebGL平台老是出错,错误输出: Failed running "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten_Win/python/2.7.5.3_64bit/python.exe" "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten/emcc" @"D:/Myprogram/test/Foxiang/Assets/../Temp/emcc_arguments.resp" stdout: stderr: Traceback (most recent call last): File "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten/emcc", line 1197, in <module> shared.Building.link(linker_inputs, in

unity 摄像机震动效果

試著忘記壹切 提交于 2020-02-05 06:08:36
挂载到摄像机上 public static bool startShake = false ; //camera是否开始震动 public static float seconds = 0f ; //震动持续秒数 public static bool started = false ; //是否已经开始震动 public static float quake = 0.2f ; //震动系数 private Vector3 camPOS ; //camera的起始位置 // Use this for initialization void Start ( ) { camPOS = transform . localPosition ; } // Update is called once per frame void LateUpdate ( ) { if ( startShake ) { transform . localPosition = camPOS + Random . insideUnitSphere * quake ; Debug . Log ( transform . localPosition ) ; } if ( started ) { StartCoroutine ( WaitForSecond ( seconds ) ) ; started = false ;

Unity C# Job System - 1

我们两清 提交于 2020-02-05 01:12:31
How the C# Job System works Unity c# Job System 允许用户编写多线程代码,这些代码可以与Unity的其他部分很好地交互,并且使得编写正确的代码更加容易。编写多线程代码可以提供高性能的好处。其中包括帧率的显著提高。在c# Job 中使用 Burst 编译器可以提高代码生成质量,这也可以显著降低移动设备上的电池消耗。c# Job System 的一个重要方面是它集成了Unity内部使用的东西(Unity的 local Job System)。用户编写的代码和Unity共享工作线程。这种协作避免了创建比CPU内核更多的线程,这会导致对CPU资源的争用. What is multithreading? 在单线程计算系统中,一条指令一次输入,一个结果一次输出。加载和完成程序的时间取决于需要CPU完成的工作量。多线程是一种编程类型,它利用CPU的能力在多个核心之间同时处理多个线程。它们不是一个接一个地执行任务或指令,而是同时运行。默认情况下,一个线程在程序的开始运行。这就是“ 主线 ”。主线程创建新线程来处理任务。这些新线程彼此并行运行,并且通常在完成后将其结果与主线程同步。 如果您有一些任务需要长时间运行,那么这种多线程方法可以很好地工作。然而,游戏开发代码通常包含许多需要同时执行的 小指令 。如果您为每个线程创建一个线程,您可能会得到许多线程