unity

unity项目对音效的优化处理

Deadly 提交于 2020-01-16 17:03:51
最近做项目优化,感觉每个地方都优化了还是到某一个地方或地段有点卡顿的现象。经过多方查找找到了问题的原因:音效播放导致的卡顿。 然后就对音效的属性界面进行了如下调整就行了: Load Type :加载类型,我选的是在内存中压缩,这个根据你自己的情况而定。播放时将声音压缩在内存中,并进行解压。这个选项有轻微的性能开销(特别是对于Ogg/Vorbis压缩文件),所以只在加载时解压缩会占用大量内存的较大文件中使用它。解压发生在混合器线程上,可以在分析器窗口的音频窗格中的“DSP CPU”部分进行监视 compression Format :压缩格式,选择ADPCM。这种格式对于包含相当多的噪音并且需要大量播放的声音很有用,比如脚步声、撞击声、武器声。压缩比比PCM小3.5倍,但是CPU的使用率远低于MP3/Vorbis格式,这使得它成为上述声音类别的首选。 Sample Rate Setting :采样率设置。此设置会根据分析的最高频率内容自动优化采样率。 将所有的音效(我的是2D游戏,音效也是2D的)修改后。在场景中运行时一些卡顿的现象就好了好多。 点赞 1 ———————————————— 版权声明:本文为CSDN博主「crazyapp」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net

Unity 基础 之 Litjson 简单进行 json 创建与解析

可紊 提交于 2020-01-16 11:00:35
Unity 基础 之 Litjson 简单进行json 创建与解析 目录 Unity 基础 之 Litjson 简单进行json 创建与解析 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现步骤 六、关键代码 一、简单介绍 Unity中的一些基础知识点。 Unity游戏开发中,进行数据封装是很常见的操作,这里简单介绍使用 litjson ,进行json数据的创建和解析。 二、实现原理 1、JsonMapper.ToJson将制定数据结构转换为Json字符,进行 Json 数据创建 2、JsonMapper.ToObject<T>用于将Json字符转换为指定数据结构,进行 Json 数据解析 三、注意事项 1、请记得导入 Litjson.dll 插件 2、注意解析的使用 结构要保有 无参构造,不然 JsonMapper.ToObject<T> 可能会报错哈 四、效果预览 五、实现步骤 1、打开Unity,新建一个空工程,导入 Litjson.dll,如下图 2、新建脚本,使用Litjson ,进行数据的Json 创建与解析,如下图 3、把脚本挂载到场景中,如下图 4、运行场景,控制台 Console 打印如下 六、关键代码 1、JsonTest using LitJson; using System.Collections; using System

unity 获取UGUI中的Text字的坐标

微笑、不失礼 提交于 2020-01-16 09:10:43
using System.Collections; using UnityEngine; using UnityEngine.UI; public class TextMoveHelper : MonoBehaviour { public Text textComp; public Canvas canvas; public Text text; public Vector3 GetPosAtText(Canvas canvas, Text text,string strFragment) { int strFragmentIndex = text.text.IndexOf(strFragment);//-1表示不包含strFragment Vector3 stringPos = Vector3.zero; if (strFragmentIndex>-1) { Vector3 firstPos = GetPosAtText(canvas, text, strFragmentIndex + 1); Vector3 lastPos= GetPosAtText(canvas, text, strFragmentIndex+strFragment.Length); stringPos = (firstPos + lastPos) * 0.5f; } else { stringPos=

Eclipse导出jar包Unity打包错误

∥☆過路亽.° 提交于 2020-01-16 02:59:18
  前几天接SDK使用的是Android Studio昨天打开AndroidStudio后自动更新了gradler然后失败了然后AndroidStudio就挂了。就是用之前的方法Eclipse到处jar包,最后遇到了奇怪的问题,在此记录下,希望可以帮到遇到同样错误的小伙伴。 1,我在Eclipse下随便创建了一个安卓工程,首先使用的是E:\Unity 4.6\Editor\Data\PlaybackEngines\androidplayer\release\bin下的Classes.jar. 2,简单的写了个函数供Unity调用. 3,编译导出jar包. 4,将jar导入Unity的Plugins/Android下. 5,导出Apk真机测试,OK。 因为我自己还装了Unity5.2.3所以顺便也测试了下,同样的操作步骤,在Unity5.2.3下打包不过报这个错误:“Unable to convert classes into dex format. See the Console for details.有经验的人一看就知道是Classes.jar重复了。导出jar包和前者完全一样的啊,不知道为什么会出现这个错误,问问度娘,果然有人遇到过。 http://forum.china.unity3d.com/thread-5434-1-1.html 有提供解决方案

【Unity】透明度渐变

感情迁移 提交于 2020-01-15 19:46:06
写给美术大佬的脚本,还要继续改,github地址: TransEffect【github】 效果图如下: Ver.1源码,针对3d Object: using System.Collections; using System.Collections.Generic; using UnityEngine; public class TransEffect : MonoBehaviour { public List<GoInfo> GoList; public float varifySpeed = 0.5f; public float aTime = 5f;//每个物体保持出现的时间 public float dTime = 5f; private float minAlpha = 0.0f; private float maxAlpha = .9f; private float curAlpha = 1.0f; private float nextAlpha = 0.0f; private int i = 0; public void OnEnable() { LoadGo(); } // Use this for initialization void Start() { //初始化全List隐形 foreach (GoInfo go in GoList) { Color c =

Unity插件之Unity调用C#编译的DLL

别等时光非礼了梦想. 提交于 2020-01-15 16:50:25
Unity插件分为两种:托管插件(Managed Plugins)和本地插件(Native Plugins)。本文先来说说Unity中的托管插件,本地插件的文章留到下一篇文章再说。 有时候我们会有这样的需求:给第三方公司提供Unity插件,而又不希望第三方看到具体代码,这时就可以将核心代码编译成dll文件供第三方调用。或者说,同一个公司多个项目都用到某个模块,则可以把该模块封装成dll,方便在不同项目之间共用和维护。 关于dll加密的问题,以后有机会了可以考虑写点东西分享出来。 一、创建DLL 打开VS,选择文件 -> 新建 -> 项目后打开新建项目对话框。接着操作如下: 点击确定后,编写如下代码: using System; namespace MyLib { public class MyClass { public static string GetBlogName() { return "Sheh伟伟的简书"; } public static TimeSpan GetBlogTime(DateTime time) { return (time - DateTime.Parse("2016/11/14")); } } } 然后生成dll文件,操作如下图: 提示:也可以用MonoDeveloper创建并生成dll,至于操作步骤可以查看 官网手册 。 二、导入DLL

unity获取一个目录下的所有prefab路径

心已入冬 提交于 2020-01-15 08:36:53
目录结构: 获取Prefab下的所有prefab using System; using System.IO; using UnityEditor; using UnityEngine; public class Test { [MenuItem("BuildTool/Lugs")] static void LugsTest() { string path = "Assets/UI/Prefab"; GetAllPrefabs(path); } static void GetAllPrefabs(string directory) { if (string.IsNullOrEmpty(directory) || !directory.StartsWith("Assets")) throw new ArgumentException("folderPath"); string[] subFolders = Directory.GetDirectories(directory); string[] guids = null; string[] assetPaths = null; int i = 0, iMax = 0; foreach (var folder in subFolders) { guids = AssetDatabase.FindAssets("t:Prefab",

unity shader 着色器实例 代码+详解注释 【显示模型法线方向的shader】

放肆的年华 提交于 2020-01-15 02:57:21
用于显示模型法线方向的shader 原理很简单,就是获取顶点坐标信息作为起点,沿着法线方向在指定长度的位置画一条线段。我的代码里都有详细注释。 翠花,上效果图~ Shader "Unlit/normal" { //变量接口 Properties { //线段长度 _LineLength ( "Length" , float ) = 1. //线段颜色 _LineColor ( "Color" , COLOR ) = ( 0 , 1 , 0 , 1 ) } //着色器正文 SubShader { //着色器程序块 Pass { Tags { "RenderType" = "Opaque" } LOD 200 CGPROGRAM # pragma target 5.0 //顶点着色器,用于处理位置信息 # pragma vertex vert //片元着色器,用于处理颜色 # pragma fragment frag //几何着色器,DirectX 10新增的,介于顶点和片元着色器之间的可选着色器 # pragma geometry geo //引入空间转换宏 # include "UnityCG.cginc" float _LineLength ; fixed4 _LineColor ; //输入到顶点着色器的数据 struct v2g { //顶点位置 float4 pos :

关于Unity中的光照(五)

一个人想着一个人 提交于 2020-01-15 02:56:02
Mobile Diffuse Unity自带的一种shader,用的比较多,性能还可以。我们默认创建的unit shader基本和它一致,但是没有参与光照计算,看起来和Mobile Diffuse有区别 1: 漫反射着色器, 最简单的3D着色模式;光照在物体上,漫反射就是原本是什么样的颜色,就显示什么样的颜色。 2: 模型顶点,到顶点的纹理坐标,到着色的时候选择纹理上的颜色着色; 3: 在光照之前,你把纹理本来的颜色着色上去,参与光照,漫反射部分; Standard Unity自带的一种shader,使用后要把Main Maps---->Albedo的颜色调到最亮,是一种比较自然的shader 1: 基于物理学的着色是用模拟现实的方式呈现出材质和灯光之间的相互作用, 基于物理学的着色器给用户营造出连续性。; 2: 为了表现出真实的灯光, 标准着色器模仿了能量存储(物体反射的光源不大于它接收的光源), Fresnel反射(视线不垂直于物体表面时夹角月小,反射越明显), 表面遮蔽; 3: Stander着色器的参数: Rendering Mode: 四种渲染模式;   (1) Opaque模式:这种模式代表该着色器不支持透明通道, 物体是完全不透明的;   (2) Cutout模式:这种模式下支持透明通道,要么就透明,要么就完全不透明,图片内容是否透明

Shader学习七,UnityCG.cginc

给你一囗甜甜゛ 提交于 2020-01-15 00:47:17
常用的着色器文件:E:\Other\install\Unity_2018.3.13f1\Unity\ Editor\Data\CGIncludes 我的安装路径是这个没有CGIncludes这个文件夹的可能就要去官网下载对应版本的着色器了 常用的文件如下: UnityCG.cginc:包含了最常用的帮助函数,宏和结构体等 UnityShaderVariables.cginc:在编译UnityShader时,会被自动包含进来。包含了许多内置的全局变量,如UNITY_MATRIX_MVP等 Lighting.cginc:包含各种内置的光照模型,如果编写的是SurfaceShader的话会自动包含进来 HLSLSupport.cginc:在编译UnityShader时,会自动包含进来。声明了很多用于跨平台编译的宏和定义 UnityCG.cginc中一些常用的结构体 appdata_base:可用于顶点着色器的输入,包含顶点位置,顶点法线,第一组纹理坐标 appdata_tan:可用于顶点着色器输入,包含顶点位置,顶点切线,顶点法线,第一组纹理坐标 appdata_full:可用于顶点着色器的输入,包含顶点位置,顶点切线,顶点法线,四组(或更多)纹理坐标 appdata_img:可用于顶点着色器的输入,包含顶点位置,第一组纹理坐标 v2f_img:可用于顶点着色器的输出