- 博客(73)
- 资源 (2)
- 收藏
- 关注
原创 Unity 获得文件的MD5值的方法
Unity 获得文件的MD5值的方法1、cmd : certutil -hashfile 文件path2、代码的方式using System;using System.IO;using System.Text;using UnityEngine;using System.Security.Cryptography;public class MD5Test: MonoBehaviour{ private StringBuilder _stringBuilder; pr
2021-01-22 15:24:42 1419
原创 Unity 查找一个文件夹内的所有文件
private const string path = "Assets"; private string folderPath; private void Start() { folderPath = Application.dataPath + "/Arts/SceneArts/001/ziyuanbao/Arts/PolygonCity/Models"; if (!Directory.Exists(pa...
2020-12-30 17:04:11 1334 1
原创 Unity URP及优化
URP渲染一个表面,至少需要的pass表面 1 Pass深度 1 Pass阴影 1 Pass 代理阴影来做优化Realtime Reflection Probes 1 Pass .
2020-12-23 14:34:45 8145 3
原创 LitJson 将json 解析为C#类
Json 文件[ { "ID" : 10001, "Type" : 8, "QuickMark" : 1, "MarkClass" : "HousePropertyData", "ShowConditional" : 1, "Conditionals" : ["前往指定房屋位置"], "ShowSchedule" : 0, "Schedule" : "", ...
2020-12-23 12:02:32 588
原创 Unity C# 通过反射,通过类名、方法名调用方法
Unity C# 通过反射,通过类名、方法名调用方法Type type = Type.GetType(dataByJson.MarkClass); // 类名:带命名空间的全名,不然会找不到类 例如 Murray.ClassNameobject obj = System.Activator.CreateInstance(type); // 通过类型创建实例// 通过方法名,得到方法信息GuideMarkPosByID //MethodInfo method = typ.
2020-12-23 11:46:24 2497
原创 Unity 实现简单socket通信收发消息
服务端:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net.Sockets;using System.Net;namespace NetworkServer{ cla...
2019-04-08 14:48:46 2933 2
转载 UGUI自动布局
自动布局组件可以根据元素的内容自动调节元素的布局,在和滚动列表配合显示动态元素时比较方便。 拥有Layout Element脚本的是子元素,放在相应的Layout Group父节点上,Layout Group就会根据其Width、Height进行布局。 自动布局组件:♦ Layout Element自动布局的元素,任何的需要自动布局的GameObje
2017-12-12 09:50:48 972
转载 UGUI树形结构
先上几张效果图: 如果你需要的也是这种效果,那你就来对地方了!目前,我们这个树形菜单展现出来的功能如下:1、可以动态配置数据源;2、点击每个元素的上下文菜单按钮(也就是图中的三角形按钮),可以收缩或展开它的子元素;3、可以单独判断某一元素的复选框是否被勾选,或者直接获取当前树形菜单中所有被勾选的元素;
2017-12-06 09:20:48 1508
转载 Unity打包ipa
首先保证项目在Unity上运行正常,有时候电脑上运行成功也不代表手机上能运行成功,总之会出现各种问题,还是需要丰富的经验。简单来说,步骤如下:Unity打包IOS---生成XCode项目---配置开发者账号---安装开发者证书(如果发布的话需要发布证书)---XCode在真机上运行---生成ipa在unity Build Settings里面选择平台为Platform为ios,再在
2017-11-28 16:07:41 516
转载 加载外部图片的三种方法
一、WWW加载首先,获取当前工程同目录下的“MapImages”文件夹路径,然后获取每张图片的全部路径,并将路径存到列表中。[csharp] view plain copy/// /// 获取当前物体应该读取的地形贴图的文件的路径 /// /// private string GetF
2017-11-27 17:06:00 1499
转载 Unity快速集成ShareSDK实现分享和授权登录
1. 准备工作 ShareSDK下载结构如下图所示:SDK2. SDK置入创建一个工程, 导入ShareSDKForU3D.unitypackage(注: ShareSDK为我们提供一个test场景,可以自己去分析一下.当然这里的ShareSDK账号申请以及创建APP等操作就不再说明我们直接使用官方为我们提供的数据即可)报错解决: BuildSetting中把当前的环境改成A
2017-11-23 11:09:28 631
转载 Unity5.x EventSystem事件系统
一、EventSystem对象的说明当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了对象EventSystem,可以看到该对象下有三个组件:EventSystem、StandaloneInputModule、TouchInputModule,后面两个组件都继承自BaseInputModule。EventSystem组件主要负责处理输入、
2017-11-23 10:14:33 364
转载 Unity3D快速实现微信支付
Andoid版本微信官方文档app端开发步骤:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5SDK和Demo下载: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1参考文章:http://www.jiansh
2017-11-23 10:07:54 843
原创 #if ... #endif
#if UNITY_WEBPLAYER Debug.Log("UNITY_WEBPLAYER");#endif预定义的if语句,与程序中的 if() 基本相同。#if 条件 (开始if) if(条件){//条件成立执行此处
2017-04-28 13:47:22 507
原创 2D纹理采样
采样函数 :tex2D函数。 对一张贴图的采样范围 :(0~1)位图 :CG中,每有一个sampler2D(纹理),就会有一个uv坐标位图的模式 : Repeat :在左侧再拼接一个一样的图片 clamp :不重复过滤模式 : Billinear :会有两个颜色的混合
2017-04-24 16:38:50 3442
原创 阴影效果
首先光源要开启阴影类型 :Shadow Type 改为不是No的类型,一般选择Soft Shadows地板(影子的载体) : 5.0以前,系统内建的shader,只能接收平行光产生的投影;5.0版以后的标准着色器则就可以接收任何形式的光源的投影 如果在4.x版本,如果想要让点光源投射的阴影也能显示,将playersettings中的Rend
2017-04-19 16:40:37 1465 1
原创 Fragment Shader
顶点程序计算光照执行效率高,片段程序计算光照较慢,但是效果更加细腻平滑。从顶点集中传参数到片段集中,是不可以用NORMAL语义的将光照计算从顶点程序集中移植到片段程序集中 :struct v2f { float4 pos : POSITION; float3 normal : TEXCOORD1; // 不
2017-04-07 12:55:29 1750
原创 漫反射光照
法向量 :垂直于平面的向量 ; float3 N = normalize(v.normal);得到顶点到光源的向量 :_WorldSpaceLightPos0; float3 L = normalize(_WorldSpaceLightPos0); 模型旋转后环境光的设置 : win
2017-03-22 14:42:29 1503
原创 Shader中顶点片段级
Shader中的模型顶点,默认使用的是自身坐标系。例 :struct v2f { float4 pos : POSITION; fixed4 color : COLOR;}v2f vert(appdata_base v) { v2f o; o.pos = mul(UNITY_MATRIX_MVP ,
2017-03-06 16:42:19 539
原创 Unity Shader内建的时间因子
_Time --> 类型 :float4 _SinTime --> 类型 :float4 --> 值 :(t/8 , t/4 , t/2 , t) _SinTime.x/ y / z / w_CosTime --> 类型 :float4 --> 值 :(t/8 , t/4 , t/2 , t)
2017-03-06 09:53:25 1200
原创 MVP矩阵
MVP矩阵 : MVP变换 : 模型 --> 视口 --> 摄像机的变换,对应于顶点的透视变换,为了产生立体效果。 struct v2f { float4 pos : POSITION; } v2f vert(appdata_base v) { v2f o; o.
2017-03-06 09:31:05 1698
原创 CG变量
在CG中不能直接使用Properties中的属性名称,在使用之前,必须现在CG代码块中声明一个同名的变量。Properties { _MainColor("MainColor", color) = (1,1,1,1) }CGPROGRAMfloat4 _MainColor;uniform float4 _SecondColor;
2017-03-03 16:34:38 556
原创 CG函数
函数 : 自定义函数 : 自定义的函数必须要先声明才能被使用; (1)、把函数定义在调用定制方法的方法(片段函数)前。 (2)、前向声明,前向声明方法的返回值类型、方法名和参数列表,一定没有方法体。 CG中所有的函数都是通过值拷贝进行传参,如果想要通过调用方法得到返回值进行赋值操作,可以通过ou
2017-03-03 16:22:02 790
原创 CG基本数据类型
CG中的基本数据类型 : float --> 32位浮点数据,一个符号位。 half --> 16位浮点数据。 fixed --> 12位定点数,被所有的fragment profiles支持。 int --> 32位整型数据。 bool --> true or false 三目运算 :
2017-03-03 09:22:09 1297
原创 vertex and fragment shader
在顶点和片段着色器中,至少要有一个pass通道。在CGPROGRAM 和 ENDCG中嵌入语言在顶点和片段着色器中,要求顶点和片段两个片段级都要编写函数 : #pragma vertex(关键字) vert(方法名) #pragma fragment frag顶点函数中,必须要又POSITION
2017-03-02 13:10:10 381
原创 Surface Shader
surface shader是一种对vertex and fragment shader的一种包装,不能加pass通道,加pass会编译报错#pragma surface surf standard fullforwardshadowspragma :表示是一条编译指令surface :表示这个Shader是一个表面着色器surf :函数名,在之后的代码块中
2017-03-01 15:50:04 726
原创 Fixed function Shader 3
透明处理 : 1、使用Blending命令,需要加上标签 :tags = { "Queue" = "Transparent" }Properties{ _MainTex("MainTex" , 2d) = "white" {} _SecondTex("Second" , 2d) = ""{} _ConstantCo
2017-03-01 10:52:27 421
原创 Fixed function Shader 2
最重要的命令 :settexture 设置纹理 combine命令 :合并当前纹理,只有当前纹理会生效,之前计算的顶点数据等就不会有效果了,所以需要乘上primary(之前计算得到的数据)。又因为这个两个值都是浮点数,相乘得到的结果会比之前都要小,所以需要使用Unity的double(双倍)或者quad(四倍)操作。 一个settexture只可以带一个参数,
2017-02-28 14:22:20 348
原创 Fixed function Shader 1
Fixed function Shader必须要有pass通道,在pass通道中 :例 :Color(1,1,1,1) 表示这个shader有固定的颜色; 但是如果想要在面板上可配置这个颜色,那么就必须需要在properties中声明 :_Color("Color" , color) = (1,1,1,1) 然后在pass块中使用命令 :Color[_Color]
2017-02-27 14:05:28 364
原创 Blend运算
Alpha Blending --> Alpha混合 Blending即是控制透明,处于光栅化的最后阶段给模型贴一个材质,在某个点处计算出的颜色成为源,而该点之前所累积的所有颜色值称为目标。语法 : Blend off --> 默认,不混合 Blend SrcFactor DstFactor
2017-02-24 16:00:54 1331
原创 Shader中的Tags
SubShader内部可以有标签(Tags)的定义。Tags指定了这个SubShader的渲染顺序(时机),以及其他的一些设置。1、"Queue"标签 :定义渲染顺序,预制值为 : (1)、Background :值为1000,多用于天空盒 (2)、Geometry :值为2000,大部分物体都处于这个队列中,不透明的物体也处于这个队列中,这个队列内部的物体
2017-02-24 13:15:36 1153
原创 Unity内建的Shader
1、Unlit :不发光,只是一个纹理,不被任何光照影响,多用于UI2、Vertexlit :顶点光照3、Diffuse :漫反射4、Normal Mapped :法线贴图5、Specular :高光6、Normal Mapped Specular :高光法线贴图7、Parallax Normal Mapped :视差法线贴图8、Parallax Normal Mapp
2017-02-23 16:32:31 902
原创 Shaderlab的基本结构
Shaderlab 不区分大小写,Properties中不能加分号Shader "name" { [Properties] --> 可无 [SubShaders] [FallBack] --> 可无
2017-02-23 15:43:25 668
原创 矩阵的逆
矩阵的逆的定义 : M (M-1) = M-1M = I (单位矩阵) 左乘或者右乘得到的结果都为单位矩阵,互相为逆逆的前提,首先矩阵必须是方阵;而且不是所有的方阵都又逆,例如行列式为零的方阵就没有逆。矩阵的逆的最重要的几何意义 : 对一个空间点来说,乘上一个矩阵,这个空间点就作了相对应的几何变换;如果想要撤销这个变换,就需要
2017-01-10 14:46:40 34861
原创 方阵和行列式
方阵 : 行数和列数相等的矩阵叫做方阵行列式 : 行列式用 " | | " 表示,行列式的实质其实是一个代数运算求得的标量值,而且必须是方阵行列式才有定义。2阶方阵的行列式的求法 : 主对角线的乘积减去次对角线的乘积 3阶方阵的行列式的求法 : N阶方阵的行列
2017-01-10 14:02:43 4651
原创 3D中变换的种类
线性变换 :y = kx ( 平移不是线性变换)仿射变换 :y = kx + b 所有的线性变换都是仿射变换,线性变换 + 平移旋转、缩放、平移、镜像、切变( 比如把一个矩形拉成一个平行四边形 )按数学性质来区分 : 可逆、等角、正交、刚体按作用来区分 : 平行投影 :正交摄像机产生的投影,不具有近大
2017-01-10 10:06:43 606
原创 旋转矩阵
2D旋转矩阵 : 绕坐标中心旋转a角度用向量(x,y)与这个旋转矩阵相乘,就可以通过旋转矩阵得到旋转变换3D旋转矩阵 :2D缩放矩阵 : 沿坐标轴缩放 : 沿任意N轴缩放 : 在winForm中画出图形,首先要引入命名空间,System.DrawingPointF
2017-01-07 10:57:11 874
Mantis LOD Editor - Professional Edition 6.3.unitypackage
2020-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人