unity

Unity 声音与录音与麦克风实时播放

匿名 (未验证) 提交于 2019-12-02 23:43:01
Unity AudioSource与MicroPhone以及AudioClip之间的关系。 下面是一个声音,长度为7秒钟,声音的实际数据本质是由采样点组成的的列表,一秒钟内的采样点数就是采样频率,下面的采样频率是10,正常实际中是44100,根据需求设置;AudioSource播放声音时,设置其TimeSamples的意思就是从声音的第timeSamples个采样点位置开始播放,因此设置声音的播放的偏移位置的方式是设置timeSamples或者设置time。播放时 timeSamples并不是一直固定的 ,跟随时间逐个指向每个对应的采样点的索引值。 接下来是设置麦克风的,麦克风的原理就是首先定义一个Clip,开始录音之后,就不断的将录音采样点值赋予clip的相对应的采样点,这点和Audiosource的timeSamples相同,区别是两者的操作相反,当前采样点的位置可以用MicroPhone的GetPosition()获得。因此如果想要像KTV那样实时的播放录音,就是让audiosource播放的时候,timeSamples的值刚好等于当前采样点的值,或者延迟不大的一段采样点距离(好吧,我这么干了,可是不知道为什么噪音很严重,有待研究,并且timeSamples的值不能大于当前录音采样点的值,不然没有声音(傻瓜都能想到为什么))。 下面是实时播放的代码。 using System

Unity的学习笔记(UGUI文本逐个字输出)

匿名 (未验证) 提交于 2019-12-02 23:43:01
之前在网上找过各种的逐个输出字,我可能理解能力不好,照着代码复制没有能使用成功,于是自己研究了很多网上说的思路,各种改良出了一个能用的,写完自己测试,觉得还真好用,于是记录下来 用法:将用代码组件挂上去,通过查找到代码组件,通过enabled来控制组件开关,每次更新文字时候,让组件进行一次关闭和开启,就能再次逐个显示 using UnityEngine; using System.Collections; using UnityEngine.UI; public class WordOutPut : MonoBehaviour { public float charsPerSecond = 0.05f;//打字时间间隔 private string words;//保存需要显示的文字 private bool isActive = false; //判断是否开始输出 private float timer;//计时器 private Text myText;//获取身上的test脚本 private int currentPos = 0;//当前打字位置 // Use this for initialization private void OnDisable() { OnFinish();//当脚本在失活的时候,将数据进行重置 }   /// <summary>   ///

为Unity的新版ugui的Prefab生成预览图

匿名 (未验证) 提交于 2019-12-02 23:43:01
using UnityEngine; using System.Collections; using UnityEditor; using System.IO; [CustomPreview(typeof(GameObject))] public class UIPreview : ObjectPreview { Texture preview; const string cachePreviewPath = "CachePreviews"; public override bool HasPreviewGUI() { return true; } public override void OnPreviewGUI(Rect r, GUIStyle background) { base.OnPreviewGUI(r, background); if (target == null) return; var targetGameObject = target as GameObject; if (targetGameObject == null) return; GUI.Label(r, target.name + " is being previewed"); preview = AssetPreview.GetAssetPreview(target); if (preview =

shader入门精要在前向渲染中处理不同的光源类型(笔记19)

匿名 (未验证) 提交于 2019-12-02 23:43:01
// Upgrade NOTE: replaced '_LightMatrix0' with 'unity_WorldToLight' // Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld' // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Unity Shaders Book/Chapter 9/Forward Rendering" { Properties { _Diffuse ( "Diffuse" , Color ) = ( 1 , 1 , 1 , 1 ) _Specular ( "Specular" , Color ) = ( 1 , 1 , 1 , 1 ) _Gloss ( "Gloss" , Range ( 8.0 , 256 ) ) = 20 } SubShader { Tags { "RenderType" = "Opaque" } Pass { // Pass for ambient light & first pixel light (directional light) Tags { "LightMode" = "ForwardBase" }

Unity记录

匿名 (未验证) 提交于 2019-12-02 23:42:01
( Creative Commons ) //球形检测。得到碰撞范围内的碰撞物体 Collider [] enemys = Physics.OverlapCapsule(bengin,end,attackRange * 5, needJude); //获取layer设置的内容 LayerMask.GetMask(new string[] { TagLayerType.hero.ToString(), TagLayerType.crytal.ToString(), TagLayerType.soldier.ToString(), TagLayerType.tower.ToString() }); //用来访问子对象上的脚本 AttackRangeCircle.GetComponentInChildren().color //设置方向的最大值 回归1 desireForward.Normalize(); //获取坐标的平方根 walkSpeed = desireForward.magnitude; //指向移动方向的正前方 transform.rotation = Quaternion.Lerp(transform.rotation,Quaternion.LookRotation(desireForward),RotaionSpeed*Time.fixedDeltaTime); /**

unity设置全屏和退出全屏

匿名 (未验证) 提交于 2019-12-02 23:42:01
using System.Collections; using System.Collections.Generic; using UnityEngine; public class fullscreen : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { // 按ESC退出全屏 if (Input.GetKey(KeyCode.Escape)) { Screen.fullScreen = false; //退出全屏 } //按A全屏 if (Input.GetKey(KeyCode.A)) { Screen.SetResolution(1600, 900, true); Screen.fullScreen = true; //设置成全屏, } } } FR:徐海涛(hunk Xu) QQ技术交流群:386476712 文章来源: https://blog.csdn.net/qq_15267341/article/details/91884383

Unity基础--ShaderLab:Stencil

匿名 (未验证) 提交于 2019-12-02 23:42:01
文章目录 模板缓存(stencil buffer) 语法 例子 模板缓存(stencil buffer) 模板缓存通常作为用来作为每个像素的掩码来觉得是否丢弃该像素的数据。 模板缓冲区通常是每像素8位整数。该值可以被写入、递增或递减。随后的绘制调用可以根据该值进行测试,以确定在运行像素着色器之前是否应该丢弃像素。 语法 Ref Ref referenceValue :要比较的值和/或者要写入缓冲区的值。 ReadMask ReadMask readMask :8bit 的掩码范围是0-255的整形。用于将参考值与缓冲区的内容进行比较 (referenceValue & readMask) comparisonFunction (stencilBufferValue & readMask) 。默认255。 WriteMask WriteMask writeMask :作为0-255整数的8位掩码,在写入缓冲区时使用。注意,与其他写掩码一样,它指定哪些模板缓冲区位将受到写的影响(即WriteMask 0表示没有位受到影响,也不会写入0)。默认值:255。 Comp Comp comparisonFunction :用于将参考值与缓冲区的当前内容进行比较的函数。默认值:always。 Pass Pass stencilOperation :如果模板测试(和深度测试)通过