- 博客(77)
- 资源 (8)
- 收藏
- 关注
原创 渲染流水线
学习Unity Shader 入门精要的笔记。什么时渲染流水线渲染流水线的任务在于由一个三维场景出发,生成一张二维图像。这个工作时CPU和GPU共同完成的。一般将渲染流水线分成三个阶段:应用阶段,几何阶段,光栅化阶段,这里仅仅是概念性阶段,每个阶段通常也是一个流水线系统。应用阶段这个阶段是我们自己主导的,因此通常由CPU负责实现。开发者有三个主要的任务:1.我们要准备好场景的数据,例如摄像机的位置,视锥体,场景中包含的模型,使用的光源等。2.为了提高渲染性能,我们需要做一个粗
2021-12-21 22:09:51
385
原创 Unity 模拟投影器(Projector Simulator)
准确模拟视频投影仪,使图像、视频和 RenderTextures 能够真实地投影。使用方法:支持(2017.4 及更高版本)将插件导入到项目中后点击ProjectorSimulator文件夹会发现三个预制体,每一个预制体对应了投影的类型,这里可以支持,图像、视频和 RenderTextures。RenderTextureProjector先创建一个Render Texture作为要投影的内容,其中Render Texture的Size会影响投影内容的清晰度。Image siz...
2021-12-15 15:03:38
6605
1
原创 VR开发中的人物传送——Vive-Teleporter
这是一个易于使用的传送系统,适用于VR开发和 Unity 游戏引擎,我这里用的PicoVR一体机。这是Unity 生成的 Navigation Mesh 作为玩家可以传送到的边界。因为这个过程是捎带Unity的工作,它是稳定的,可以在大多数项目中可靠地使用,该系统使用使用简单运动学方程的直观抛物线选择机制。入门1.将 testbed 场景中的 Navmesh 和 Camera Holder复制到你的VR场景中。2.将你可以移动的区域烘焙,Window >AI> Navi...
2021-12-08 14:20:07
799
原创 Unity 代码动态生成模型
网格由 3D 空间中排列的三角形组成,旨在产生实体对象的效果。三角形由其拐点或者顶点定义。在 Mesh 类中,顶点全部存储在单个数组中,并且每个三角形使用与顶点数组的索引对应的三个整数指定。这些三角形还将全部集合在一个整数数组中;从该数组的开头以三个为一组的方式解读数组中的整数,因此元素 0、1 和 2 定义第一个三角形,3、4 和 5 定义第二个三角形,依此类推。Mesh类是对象网格几何体的基本脚本接口。该类使用数组来表示三角形、顶点位置、法线和纹理坐标,还提供了许多其他有用的属性和函数来辅助网格的生
2021-11-30 14:53:46
6321
原创 Lua 基本语法学习笔记(五)
面向对象1) 封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。 2) 继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。 3) 多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。Object = {}function Object:new() local obj = {} -- 给空对象
2021-11-26 13:42:55
286
原创 Lua 基本语法学习笔记(四)
协同程序Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。协同是非常强大的功能,但是用起来也很复杂。线程和协同程序区别线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只有在明确的被要求挂起的时候才会被挂起。协同程序有点类似同步的多线程,在等待同一个线程锁的几个线程
2021-11-25 21:29:02
464
原创 Lua 基本语法学习笔记(三)
Table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。Lua table 是不固定大小的,你可以根据自己需要进行扩容。print("========表========");print("========字典========");-- 字典是个键值对构成的a = { ["name"] = "player", ["age"] =
2021-11-25 15:59:04
441
原创 Lua 基本语法学习笔记(二)
函数在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。Lua 函数主要有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用; 2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。print("====无参数的函数====");function func1() print("f1");end
2021-11-23 15:48:28
385
原创 Lua 基本语法学习笔记(一)
数据类型Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。--print("hello world");单行注释--[[print("df "); 多行注释]]----声明一个变量他可以是任意类型的变量a=nil;print(a);a=1;print(a);a='123';a="123";--string类型可以用单引号也可以用双引号print(a);a=truep
2021-11-23 14:01:46
486
原创 Unity 聊天室(Socket编程)
示例:什么是Socket:Socket(套接字),用来描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发送请求或者应答网络请求!Socket是支撑TCP/IP协议的网络通信的基本操作单元,是对网络通信过程中端点的抽象表示,包含了进行网络通信所必须的五种信息:连接使用的协议,本地主机的IP地址,本地远程的协议端口,远地主机的IP地址,远地进程的协议端口。通信模型:服务端实现连接的步骤1.创建Socket,绑定IP和端口。2.调用Accept()监听客...
2021-11-16 15:36:58
8885
2
原创 Unity A星(A Star/A*)寻路算法
演示:我们知道Unity中的Navigation只能实现3D场景的寻路,不能实现2D的寻路,常见的寻路算法有很多种,其中A星是项目中最常用的寻路方法。在项目中用到了A星,就简单总结一下吧。原理:最通俗的原理就是寻找周围的点。选出一个到终点最近的点,再从选出的点为起点寻找下一个点,直到到达目标点。实现:如何选出最近的点呢,我们就会利用曼哈顿街区算法公式寻找下一个点。如下图:我们以黄色为起点,黄色的点周围有八个可以移动的点,移动的距离对角移动为1.4,直线移动为1。..
2021-11-08 15:18:33
8767
8
原创 Unity 设计模式——观察者设计模式
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。使用场景:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。举例:我们用猫抓老鼠的来举例子。当汤姆猫进屋子的时候,杰瑞用跑步的方式逃跑,米老鼠骑自行车逃跑,舒克开坦克逃跑。这个时候汤姆猫就是被观察者,有一个进屋子的方法。杰瑞,米老鼠,舒克就是观察者都有一个逃跑的方法。优点:1、观察.
2021-11-02 23:29:34
1098
2
原创 Unity 一款基于UGUI的数据可视化图表插件(XCharts 2.0)。
XCharts是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。支持折线图、柱状图、饼图、雷达图、散点图、热力图、仪表盘、环形图、极坐标、水位图、K线图等常见图表。下载地址:GitHub - monitor1394/unity-ugui-XCharts: A charting and data visualization library for Unity. 一款基于UGUI的数据可视化图表插件。A charting and data...
2021-10-25 14:12:28
3809
原创 Unity 贝塞尔曲线之美
最近项目中用到了贝塞尔曲线,学习完成后记录一下自己的学习结果吧。一阶贝塞尔曲线一阶贝塞尔曲线就是一条线,我们很容易根据 t 求出 t 点的位置。P(t)=P0+(P1-P0)*t =(1-t)*P0+tP1 ; t[ 0,1] ,且其等同于线性插值。二阶贝塞尔曲线取平面内三个不共线的点,AB:AC=CD:CE,这个时候BD又是一条直线,可以按照一阶的贝塞尔方程来进行线性插值了。P(B)=(1-t)*P0+tP1 ;P(D)=(1-t)P1+tP2 ;P...
2021-10-13 16:47:50
1019
原创 Unity 动画混合树实例(Blend Tree)
先看效果游戏动画中的一项常见任务是在两个或更多相似运动之间进行混合。也许最熟知的示例就是根据角色的速度来混合行走和奔跑动画。另一个示例是角色在奔跑期间转向时向左或向右倾斜。使用方法:1.右键单击 Animator Controller 窗口上的空白区域。 1.从显示的上下文菜单中,选择Create State > From New Blend Tree。 1.双击混合树 (Blend Tree) 以进入混合树视图 (Blend Tree Graph)。Animator ...
2021-10-11 16:42:04
5766
原创 Unity 简单几句代码实现无限循环列表(Scroll View)
先看效果这里是Scroll View的设置:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class Panel_MyScroll : MonoBehaviour{ public Transform s_content; private List<GameObject> s_card;.
2021-09-26 13:48:16
4136
4
原创 Unity 性能优化方法总结
性能优化是游戏项目开发过程中一个永恒的话题。这里主要从五个方面对项目进行优化,分别是内存,资源,图形和GPU,编程和代码框架,项目中这种资源组件的配置。资源资源管线可以大幅影响应用程序的性能。正确导入纹理纹理会占用大部分内存,因此,导入设置非常重要。通常,请遵循以下指导原则 : 减小 Max Size :使用能生成视觉上可接受的结果的最低设置。这种非破坏性方式,可以快速降低纹理内存。 使用 2 的幂 (POT) :Unity 要求移动端纹理压缩格式 (PVRCT 或 ETC)
2021-09-16 11:19:55
19307
6
原创 Unity 文件操作之文件的增删查改
解释全在注释里。复制代码挂上运行查看效果,可根据自己的需求修改。using System;using System.Collections;using System.Collections.Generic;using System.IO;using System.Text;using UnityEngine;public class MyFile : MonoBehaviour{ void Start() { Debug.Log(Appl.
2021-09-04 15:57:18
1085
4
原创 Unity 使用UnityWebRequest下载超大资源,实现断点续传和分段下载。
最近有个项目需要在服务器下载视频资源到本地,然后在本地播放视频,一开始看Unity官方文档找到资源下载的方法,但是在下载超大资源(一个2.8G的.mp4格式的视频)的时候回出现未知错误导致视频不能下载下来,先看官方提供的方法如下。using System.Collections;using System.IO;using UnityEngine;using UnityEngine.Networking;public class FileDownloader : MonoBehaviour {
2021-08-25 22:54:57
8003
10
原创 Unity 设计模式——状态模式
在游戏开发过程中,游戏中的部分对象可能会根据不同的情况做出不同的行为,我们把这种对象称为有状态的对象,而把影响对象行为的一个或多个动态变化的属性称为状态。当有状态的对象与外部事件产生互动时,其内部状态就会发生改变,从而使其行为也发生改变。如人都有高兴和伤心的时候,不同的情绪有不同的行为,当然外界也会影响其情绪变化。对这种有状态的对象编程,传统的解决方案是:将这些所有可能发生的情况全都考虑到,然后使用 if-else 或 switch-case 语句来做状态判断,再进行不同情况的处理。但是显然这种做法对复
2021-08-23 14:40:06
1599
原创 Unity 基于UGUI的UI框架 (UIFramework)
文件结构PanelInfousing System;using System.Collections.Generic;[Serializable]public class UIPanelInfo { public string panelTypeString; public string path;}[Serializable]public class UIPanelTypeJson{ public List<UIPanelIn...
2021-08-19 21:10:06
2581
3
转载 Unity 中的单例方法
前沿:在我的工作期间和学习期间,看过和学过很多单例方法,可谓是奇形怪状,不过都能实现其功能。今天我将学到的和自己思考出来的单例方法进行一个汇总和分析。单例一:最简单的单例方法 A --- 继承于MonoBehaviour 1.首先创建一个名叫:XXXManager.cs 的脚本,这个脚本就是我们的单例了。这个最简单的单例方法实现如下: 2.如何调用呢?我们创建一个叫 Main.cs 的脚本来调用它,在其Start()方法里面,调用XXXManager的TestMet
2021-08-18 22:43:05
1229
原创 时间复杂度和空间复杂度
我们都知道同一个问题有不同的算法解决,这些算法在运行时间、运行占用内存、代码易读性等方面都不相同,而在这些算法中,我们只能选择一种解决方案,这时判断选择哪个算法的依据是什么呢?在这里,我们引入了时间复杂度和空间复杂度这两个概念作为选择适合算法的重要依据,一般对比算法的好坏基本上从它的时间复杂度和空间复杂度来综合判断就可以得出哪个更适合,复杂度通常来说越小越好。算法的时间复杂度和空间复杂度的作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间..
2021-08-18 17:54:47
884
原创 Unity ScriptableObject简单应用
ScriptableObject 是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject 的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的 MonoBehaviour 脚本中存储不变的数据,这将非常有用。ScriptableObject 这种资源只需设置一次就可以在项目中一直使用。它不能直接附加到游戏对象。在 ScriptableObject 中创建字段来存储值或设置,然后在 Monobehaviour 中引用该 ScriptableObje
2021-08-17 17:20:12
1069
2
原创 Unity 免费的高亮插件——QuickOutline
开发中,我们有很多地方会用到物体高亮这个功能,网上搜索后大部分是HighLightSystem来实现的高亮功能,其实还有很多的方法实现物体的高亮。只要你再Unity商城搜索OutLine,就会有很多免费好用的高亮插件。我就介绍一下QuickOutline这个插件吧。首先将插件导入到工程里边。查看Demo你会发现有五种高亮模式。1.Silhouette Only:模型被遮挡的部分整体高亮;2.Outline Hidden:模型被遮挡的部分轮廓高亮;3.Outline All:整..
2021-08-13 13:56:21
5578
7
转载 Unity 模型透明度变换,实现3D模型淡入淡出效果。
开发中我们不仅需要UI界面淡入淡出,有时候还需要模型淡入淡出。我们在面板上修改color的a值时发现并没有效果。那是因为我们设置的RenderingMode是Opaque。官方标准shader中的Opaque pass段是不能显示半透明效果的,所以我们需要设置RenderingMode为Fade或者Transparent。然后在修改color的a值,达到淡入淡出的效果。效果如下:通常我们淡入一个模型只会传入这个模型的GameObject,所以我们自写一个类来处理这个模型淡入的一些事件。代码如下:.
2021-08-11 16:37:14
3682
原创 unity 场景叠加和卸载场景
场景叠加加载: SceneManager.LoadScene("SceneName", LoadSceneMode.Additive);场景卸载: SceneManager.UnloadSceneAsync("SceneName");
2021-08-05 10:37:03
3663
原创 unity 自动寻路开始,人物播放行走动画,到达目的地播放站立动画。
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;public class RobotManager : MonoBehaviour{ public NavMeshAgent robotNav; public Transform target; void Start() { } // Upd.
2021-07-23 10:56:47
1100
3
原创 C语言制作简单的走迷宫小游戏
#include <stdio.h>#include <stdlib.h>#include <windows.h>main() { char a[7][12]={"###########" ,"#o # #" ,"# ## ## #" ,"# # # # #" ,"# ### # #" ,"# # " ,"###########" }; i...
2021-07-04 15:08:28
1180
2
原创 C语言,两种方法找到“水仙花数”。
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。方法一:既然是三位数,百位必然是1-9,十位是0-9,个位0-9;int i, j, k; for ( i = 1; i <=9; i++)
2021-07-01 14:22:11
3515
2
原创 C语言验证哥德巴赫猜想
哥德巴赫1742年给欧拉的信中哥德巴赫提出了以下猜想:任一大于2的整数都可写成三个质数之和[1]。但是哥德巴赫自己无法证明它,于是就写信请教赫赫有名的大数学家欧拉帮忙证明,但是一直到死,欧拉也无法证明。[2]因现今数学界已经不使用“1也是素数”这个约定,原初猜想的现代陈述为:任一大于5的整数都可写成三个质数之和。(n>5:当n为偶数,n=2+(n-2),n-2也是偶数,可以分解为两个质数的和;当n为奇数,n=3+(n-3),n-3也是偶数,可以分解为两个质数的和)欧拉在回信中也提出另一等价...
2021-06-30 17:26:34
2494
原创 Unity中常用数据结构的,特点,优缺点,实例。
Unity中常用的数据结构有一下几种:Array,ArrayList,List,LinkedList,Queue,Stack,Dictionary;就一一分析一下他们的特点,优缺点和用法吧,要是有错误的地方欢迎指正;一,数组(Array)特点:数组属于线性结构,在内存中是连续存放的。 数组的元素类型必须相同。 数组可以直接通过下标访问。 数组的查找速度非常快,新增和删除速度慢。 数组在初始化时要指定数组长度。优缺点:优:存储在连续内存上;内容都是相同类型;可以通过下标访问,
2021-06-24 15:27:24
3037
原创 Unity中使用冒泡排序,选择排序,插入排序,以及Sort()。
一冒泡排序; private void BubblingSort(int[] arr) { int temp = 0; for (int i = 0; i < arr.Length - 1; i++) { for (int j = 0; j < arr.Length - 1 - i; j++) { if (arr[j] > arr[j
2021-06-21 13:59:28
1922
原创 Unity Timeline导入,以及扩展插件Default Playables
一.导入Window ——>Package Manager——>搜索Timeline就能找到啦,导入即可。导入成功后你会发现你只有一下的类型。二.扩展只要我们去Unity商城搜索Default Playables导入即可对Timeline进行一个扩展。扩展完成后就是这个样子的了。如果扩展完成以后还不能满足你项目的要求你可以用代码做更多的模块。具体的操作就可以看视频学习了在这就不做过多的阐述。三.学习和深入理解看Unity官方的教学视频吧。..
2021-06-21 09:56:42
1464
原创 Unity 2019版本如何导入Cinemachine
Window ——>Package Manager——>搜索Cinemachine就能找到啦,导入即可。
2021-06-21 09:20:37
1575
原创 Unity 摄像机绕物体旋转(带阻尼)
using System.Collections;using System.Collections.Generic;using UnityEngine;public class MoveCameraByMouse : MonoBehaviour{// 围绕旋转的目标物体public Transform target;// 设置旋转角度public float x = 0f, y = 0f, z = 0f;public bool xFlag = false...
2021-06-01 14:36:13
1839
3
原创 常用上下标
常用上标⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ⁿ º ˙常用下标₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ₐ ₑ ₒ ₓ ₔ ₕ ₖ ₗ ₘ ₙ ₚ ₛ ₜ更多上标ᵃ ᵇ ᶜ ᵈ ᵉ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ᵒ⃒ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᙆ ᴬ ᴮ ᒼ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴼ̴ ᴿ ˢ ᵀ ᵁ ᵂ ˣ ᵞ ᙆ ꝰ ˀ ˁ ˤ ꟸ ꭜ ʱ ꭝ ꭞ ʴ ʵ ʶ ꭟ ˠ ꟹ ᴭ ᴯ ᴲ ᴻ ᴽ ᵄ ᵅ ᵆ ᵊ
2021-06-01 14:14:49
3765
1
Multiple Graph And Chart UI Pack
2023-06-13
uWindowCapture
2022-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅