unity

Unity中一个简单的声音管理类

流过昼夜 提交于 2019-11-27 13:04:36
简单的声音管理类,代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; [DisallowMultipleComponent] public class AudioManger : MonoBehaviour { private static AudioManger instance; private AudioSource bgSource; private AudioSource soundSource; public AudioClip bgMusicClip;//背景音乐的clip public List<AudioClip> soundAudioClips=new List<AudioClip>();//存放音效clip的列表,可面板赋值 public static AudioManger Instance { get { if (instance == null) { GameObject audioManger = new GameObject("AudioManger"); instance= audioManger.AddComponent<AudioManger>(); audioManger.AddComponent<AudioSource>()

unity内存管理(转)

℡╲_俬逩灬. 提交于 2019-11-27 12:54:44
转自: https://www.cnblogs.com/zsb517/p/5724908.html Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的。 其实场景里所有静态的对象也有这么一个加载过程,只是Unity3D后台替你自动完成了。 详细说一下细节概念: AssetBundle运行时加载: 来自文件就用CreateFromFile(注意这种方法只能用于standalone程序)这是最快的加载方法 也可以来自Memory,用CreateFromMemory(byte[]),这个byte[]可以来自文件读取的缓冲,www的下载或者其他可能的方式。 其实WWW的assetBundle就是内部数据读取完后自动创建了一个assetBundle而已 Create完以后,等于把硬盘或者网络的一个文件读到内存一个区域,这时候只是个AssetBundle内存镜像数据块,还没有Assets的概念。 Assets加载: 用AssetBundle.Load(同Resources.Load)

unity模型法线可视化shader

给你一囗甜甜゛ 提交于 2019-11-27 10:22:46
// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Custom/ShowNormals" { Properties { _LineLength("LineLength",float) = 0.03 _LineColor("LineColor",COLOR) = (1,0,0,1) } SubShader { Pass { Tags { "RenderType" = "Opaque" } LOD 200 CGPROGRAM #pragma target 5.0 #pragma

Unity AssetBundle 踩坑记录

陌路散爱 提交于 2019-11-27 09:46:22
Unity AssetBundle 踩坑记录 editor 下选择什么平台的 ab 加载 Material doesn't have a color property '_Color' UnityEditor.DockArea:OnGUI() Material doesn't have a float or range property 'PixelSnap' UnityEditor.DockArea:OnGUI() 因为editor模式下所有的 platform ab 都是可以用的 并且打 android ab 包必须要把platform转换为android 但是自己写的cg shader 如果打成 android ab 在editor 模式下没有OpenGL 2.0 环境会报错 只有打成windows包 但是好像其他 surface shader 是可以的 参考 关于打包shader丢失参数的问题 The asset bundle ' ' can't be loaded because another asset bundle with the same files are already loaded create scene assetbundle Scenes/battle/MapEditor/53.unityin _LoadImmediate failed 可能的原因

Unity进阶之:MVC编程思想

非 Y 不嫁゛ 提交于 2019-11-27 09:28:12
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址: http://www.cnblogs.com/raymondking123/ )以及微信公众号"优梦创客" 您可以自由转载,但必须加入完整的版权声明! MVC 游戏初始化 在unity-start场景中,为了给整个游戏做初始化,需要创建一个空对象 空对象绑定一个脚本,这个脚本 MainInitialicer : MonoBehavior 继承自MonoBehavior 首先创建一个PlayerController Controller的对象 然后定义一个方法 void start() { 控制器初始化 Controller = new PlayerController(); 调用显示视图界面方法 Controller.ShowView } MVC实际操作 创建一个panel,panel下创建一个button设置名称为攻击,调整为best fit Mainpanel下增加一个text控件输入EXP best fit 创建一个my文件夹,里面有Scenes script Script里面有application应用程序 framework框架 文件夹 Framework里面写的是MVC的框架 需要有几个脚本: modelbase模型层基类、 viewbase界面基类、 controllerbase控制层基类、 mvc外部类

Unity中创建双面材质

ε祈祈猫儿з 提交于 2019-11-27 08:46:01
Shader " Nature/Vegitation Vertex Lit " { Properties { _Color ( " Main Color " , Color) = ( 1 , 1 , 1 , 0 ) _SpecColor ( " Spec Color " , Color) = ( 1 , 1 , 1 , 1 ) _Emission ( " Emmisive Color " , Color) = ( 0 , 0 , 0 , 0 ) _Shininess ( " Shininess " , Range ( 0.01 , 1 )) = 0.7 _FrontTex ( " Front (RGB) " , 2D) = " white " { } _BackTex ( " Back (RGB) " , 2D) = " white " { } } SubShader { Material { Diffuse [_Color] Ambient [_Color] Shininess [_Shininess] Specular [_SpecColor] Emission [_Emission] } Lighting On SeparateSpecular On Blend SrcAlpha OneMinusSrcAlpha Pass { Cull Front SetTexture [

Unity3D NGUI Sprite精灵动画

不羁岁月 提交于 2019-11-27 08:45:22
NGUI 2.6.1下载: part1 part2 NGUI 实现Sprite精灵动画很简单: 1.先制作图像集合.打开NGUI菜单下Atlas Maker,选中切好的图片,点击Add/Update按钮。 2.创建一个Sprite , 3.给Sprite添加脚本: 4.设置脚本的参数 调节动画的速度: 转载于:https://www.cnblogs.com/WilliamJiang/p/3167003.html 来源: https://blog.csdn.net/weixin_30654419/article/details/99617299

Unity3D SerialPort处理

穿精又带淫゛_ 提交于 2019-11-27 08:45:19
using UnityEngine; using System.Collections; using System; using System.Threading; using System.Collections.Generic; using System.ComponentModel; using System.IO.Ports; using System.Text.RegularExpressions; using System.Text; public class UnitySerialPort : MonoBehaviour { private SerialPort sp; private Queue queueDataPool; private Thread tPort; private Thread tPortDeal; private string strOutPool = string .Empty; string finalstring = string .Empty; string tempstring = string .Empty; byte flag0 = 0xAA ; // start sign byte flag1 = 0x8E ; // end sign List <Byte> cmdList = null ; // catch pre sign