
C#
文章平均质量分 72
Jave.Lin
积跬步至千里
展开
-
Unity - 带耗时 begin ... end 的耗时统计的Log - TSLog
idxtagtimeSpanstartDescendDesclineStartlineEndDateTimeNowcontent"实用工具/测试/测试TSLog并写日志结果"tagdatatagtagtstagdataerror。原创 2023-04-21 15:52:46 · 2105 阅读 · 0 评论 -
Unity、C#.net 的部分 API GC 测试
DemoCheck_NewDotNetManagedObj public class DotNetManagedObj { public int a1, a2, a3, a4, a5, a6; } private DotNetManagedObj cached_obj; private void Check_NewDotNetManagedObj() { Profiler.BeginSample("Check_NewDot原创 2020-12-06 22:07:33 · 1405 阅读 · 0 评论 -
Unity-TimerMgr
以前在开发页游的时候,自己造过很多轮子:TimerMgr 也是其一现在用 Unity 做开发,也少不了这个功能,所以再次造了个轮子制作这个功能目的在于,部分场景可替代使用 Unity Coroutine,或是 async/await Task.Delay,因为这两种方式都有 GC 问题但是 TimerMgr<T>的泛型回调也有 GC 这个是 C#.NET 的问题,但是具体使用消耗最低,可以查看 Git 中的 TimerMgr.cs 的注释说明运行效果C# 应用层代码示例usin原创 2020-12-05 18:50:54 · 341 阅读 · 2 评论 -
Unity Shader - 根据片段深度重建片段的世界坐标
获取当前绘制片段的世界坐标在Unity中,获取当前绘制对象中的片段的世界坐标,可以按下列方式:struct a2v { ... float4 pos : POSITION; ...};struct v2f { ... float4 worldPos : TEXCOORD0; ...};v2f vert(a2v v) { v2f o = (v2f)0; ... o.wo...原创 2020-03-12 20:21:51 · 3736 阅读 · 3 评论 -
Unity Shader - GrabPass 实现武器热扭曲拖尾效果
以前龙之谷喜欢选战士,帅气。战士的武器在甩动过程中会有扭曲拖尾。自己测试项目中想给武器也添加这效果,所以顺便学习以下。先来看看效果还可以给拖尾添加着色、亮度、和一些扭曲强度的参数设置。实现思路生成拖尾网格编写热扭曲shader处理生成拖尾网格在此前,我用过unity的TrailRenderer但是对我来说不好用,因为我需要将拖尾的头部可以与我的武器的位置吻合,如果用T...原创 2020-03-06 13:19:44 · 2448 阅读 · 2 评论 -
Unity Shader - 使用Noise噪点图生成简单山脉(使用tex2Dlod控制顶点高度)
之前有一篇:Unity Shader - Noise 噪点图 - 实现简单山脉偶然在国外的一些Unity学习网站上看到在VS阶段使用tex2Dlod的使用。(我才知道该函数可以在VS使用啊,之前看过很多文档啊,书籍啊,都没有说明这点,真是无语了啊,????)也可以参考CG的tex2Dlod文档。这一篇算是在前一篇的优化。没做啥东西,只是将生产网格的高度控制,不在脚本层处理了,该在了shader中...原创 2020-03-04 23:23:52 · 9250 阅读 · 0 评论 -
Unity Shader GrabPass 使用注意的问题
文档关于Unity Shader中的GrabPass说明文档:官方的ShaderLab: GrabPass优快云其他博主翻译的ShaderLab: GrabPassGrabPass有两种写法GrapPass { }GrabPass { “TheGrabTextureName” }两种写法的去写在哪呢。文档中有说明,但是可能说的还是不够清楚。我用自己总结的:GrabP...原创 2020-03-04 17:14:17 · 3713 阅读 · 0 评论 -
Unity Shader - Motion Trail Effect(模型运动轨迹/拖尾效果)
我们以前玩:拳皇(我是拳皇手残党),98里的卢卡尔的某个招式,快速滑动,攻击碰到的敌人,滑动过程,人物会有拉伸效果,如下图:但是这个是2D的,而且是手绘的关键帧。(但是手绘的方式来实现每一帧的过程,效果当然是最理想的,当时人力成本相当的大)那下面我们就在3D中实现类似的效果吧。先看看效果先看看静态效果:Gif效果,可以调整颜色,过程强度实现思路两个pass第一个pass绘制...原创 2020-03-02 00:43:27 · 5101 阅读 · 10 评论 -
Unity - Timeline 自定义剪辑,轨道,混合轨道,Inspector属性显示(使用Default Playables辅助工具)
Timeline中,可以通过脚本扩展自定义的剪辑,轨道,混合轨道,Inspector属性显示器。我这里参考了官方的 Default Playables的一个节点扩展方式,它也提供了一个辅助工具,非常方便,基本上我们只管处理轨道、混合轨道处理的逻辑就好了,其他的只需要鼠标点点点就可以创建好你想要的效果。当然,如果辅助工具某些功能不满足你想要的,你也可以自己编辑脚本来扩展。那下面我们就用这个辅助...原创 2020-02-29 18:52:46 · 3591 阅读 · 5 评论 -
Unity - Microphone 测试录音,播放录音,显示音波图(不是Spectrum图)
最近一直找游戏设计灵感。找着找着,突然想起,以前玩过的一款打飞机游戏,端游,他可以根据你播放的音乐文件来自动发射子弹,玩家不是能自主发射子弹的,当时我就一直拿那个:《劲乐团》里的一首曲子:《V8》- 贝多芬交响曲。这首曲子,全程高能,整个屏幕都是子弹,爽啊,哈哈,而且这首曲子也很嗨。当然与音乐相关的游戏还不止这款。。。相关游戏:劲舞团(韩国T3 娱乐公司开发,游戏开发技术没有与音乐有关...原创 2020-02-19 18:57:27 · 2521 阅读 · 3 评论 -
Unity - 动态生成迷宫(Roguelike游戏可用)
先来看看效果:该迷宫只有,x,y二个维度的迷宫。如果想要x,y,z三个维度迷宫的方式,请另外搜索。该迷宫的生成算法参考了国外的一篇文章:Rooms and Mazes: A Procedural Dungeon Generator不过我是算法实现上稍微和原作不太一样然后我随便写了个测试脚本将各个参数暴露方便测试,如下图:生产了迷宫后,我们在根据迷宫数据生产可视化对象,每个对应类型的...原创 2020-02-16 12:41:03 · 6962 阅读 · 21 评论 -
Unity - UGUI快速制作虚拟摇杆 - 移动方向摇杆
之前使用UGUI写过:U3D-UGUI-虚拟摇杆但是现在想临时使用一个测试用的摇杆也不想用第三方插件,所以想使用UGUI来使用,但之前写的那篇博客可读性很差,现在就重写一个,添加注释,方便其他同学使用。使用Unity 2018.4.16f1版本Codeusing UnityEngine;using UnityEngine.EventSystems;using UnityEngine.U...原创 2020-02-12 22:24:56 · 1000 阅读 · 0 评论 -
unity - Snapshot a model to MeshRenderer - 快照一个模型到MeshRenderer
Code将以下脚本添加到一个带有Aniamtor Component的模型GameObject上,在Game视图按下"S"键,就可以看到模型给快照了一份出来模型要有位移,何移动动画,这样就可以看到快照在原地的样子using System.Text;using UnityEngine;public class TestingAnimatorAPI : MonoBehaviour{ ...原创 2019-05-25 18:15:32 · 854 阅读 · 0 评论 -
Unity - IK 测试
Codeusing UnityEngine;public class MyIK : MonoBehaviour{ public Transform headObj = null; public Transform bodyObj = null; public Transform leftFootObj = null; public Transform rig...原创 2019-05-24 19:45:08 · 608 阅读 · 0 评论 -
Parabola 抛物线-简单公式实现
学习过程中发现一个简单抛物线的公式,好方便(不物理的重力抛物线)#Code IEnumerator Parabola(NavMeshAgent agent, float height, float duration) { OffMeshLinkData data = agent.currentOffMeshLinkData; Vector3 sta...原创 2019-05-06 18:30:30 · 1948 阅读 · 0 评论 -
Unity Mobile Game Version check and download
ReadMe.txt/*author : jave.lindate : 2018-08-17*/##文件说明: - Version.txt - 位置:Assets/StreamingAssets/windows/zh_cn/assets/Version.txt - 内容: - 第一行:程序版本 - 第二行:资源版本...原创 2018-08-17 14:24:42 · 506 阅读 · 0 评论 -
Unity ILRuntime -- 多线程
在ILRT中使用多线的话,要确保: 确保ILRT的某个方法执行时,只在一个线程(不要多线程,如两线程A,B,A执行了C.Method,那么在A执行C.Method期间,B不要执行C.Method)如下图,是我和ILRuntime作者在群里聊天的部分内容 (我就是哪个:Newbie,呵呵~) ...原创 2018-08-16 09:44:32 · 2078 阅读 · 2 评论 -
Unity FairyGUI 自适应扩展
RunningFigure 1 - Adapt None没有任何适配 Figure 2 - Adapt RelationFullScreen适配为:RelationFullScreen的话,会依赖FairyGUI中的‘关联’(Relation)来控制自适应 缺点:当某个分辨率大小超过了FairyGUI内的设计大小是,就会出现一些内容适配显示不完整,等问题,如:背景图,设计为...原创 2018-08-03 14:02:36 · 6300 阅读 · 0 评论 -
unity - MeshFilter.mesh与sharedMesh的区别
using UnityEngine;using UnityEngine.Rendering;public class ModifySharedMesh : MonoBehaviour{ public Transform t1; public Transform t2; public Transform t3; public bool usingShared...原创 2019-05-27 12:11:43 · 6053 阅读 · 0 评论 -
Unity Shader PostProcessing - 4 - 亮度、饱和度、对比度
Unity Shader PostProcessing - 4 - 亮度、饱和度、对比度Brightness 亮度是RGB分量的整体大小一般使用乘法:整体的亮度缩放rgb *= brightness还有另一种:整体亮度偏移rgb += brightnessSaturation 饱和度简单理解为:颜色的分量差异度,如果分量差异越少,颜色就越灰。如:(0.5,0.5,0.5) 3...原创 2019-09-04 18:54:14 · 2035 阅读 · 1 评论 -
HSV/HSB/HSL 色相、饱和度、亮度的色彩模型
什么是HSV/HSB/HSL首先理解 HSV/HSB/HSL 都是什么我理解:HSV : Hue, Saturate, ValueHSB : Hue, Saturate, BrightnessHSL : Hue, Saturate, Lightness(或是Luminance)Hue : 色相Saturate : 饱和度其中的Value、Brightness、Lightness...原创 2019-09-03 22:21:23 · 6133 阅读 · 0 评论 -
Unity Shader PostProcessing - 3 - 深度+法线来边缘检测
Unity Shader PostProcessing - 3 - 深度+法线来边缘检测前一篇:Unity Shader PostProcessing - 2 - 边缘检测,是基于图像像素来边缘检测的。在平面像素边缘检测会遇到很多像素颜色问题导致检测不精准那么在有几何体的情况下,后处理能否精准边缘检测呢?肯定是可以的:后处理的深度、法线纹理图像缓存数据来边缘检测提取深度、法线首先,准备...原创 2019-09-02 14:58:50 · 1414 阅读 · 0 评论 -
Unity - RenderWithShader, SetReplacementShader, ResetReplacementShader 测试
Unity - RenderWithShader, SetReplacementShader, ResetReplacementShader 测试最不喜欢介绍API,但可以参考该API的设计思路,想想,如果你自己先的引擎中,需要这些功能时,方可参考设计,当然如果不写引擎,就当作是磨砺一下使用的Unity这个工具。API 简介这三个API都是在Camera类下的RenderWithShad...原创 2019-08-31 23:03:53 · 1284 阅读 · 1 评论 -
Unity Shader - Noise 噪点图 - 实现简单山脉
ReferencesNoise HardwareKen Perlin【图形学】谈谈噪声[图形学] 柏林噪声 (perlin noise)Noise and TurbulenceLake in highland - 里头有noise的fbm,应用在云、山脉、水波...原创 2019-08-23 01:01:55 · 4617 阅读 · 3 评论 -
随机发生器:线性同余法
线性同余法这里不做过多介绍,搜一下就知道核心函数:xn+1=(a∗xn+b)%mx_{n+1}=(a*x_n+b) \% mxn+1=(a∗xn+b)%mxn+1x_{n+1}xn+1就是我们下一个要算的随机数x0x_0x0是我们的种子数Code // jave.lin 2019.08.20 public class Ran { priv...原创 2019-08-21 22:11:49 · 927 阅读 · 0 评论 -
Unity Shader - 实现类似镜面反射、水面扰动效果
前几天,家里出了一些问题,搞得心情很不好,面试我也取消了。唉,反正那个伤心啊,不过,昨天处理好了。所以说啊,家和万事兴。加油加油!!!所以心情好了,我又写博客了。另外说一下:shader我今年2019.5才开始正式学习。所以每个shader效果有些实现方法可能不是很好的,欢迎大神多多指点。进入主题吧:今天实现:Unity Shader - 实现类似镜面反射、水面扰动效果Quad ...原创 2019-08-15 18:01:24 · 10486 阅读 · 13 评论 -
Unity Shader PostProcessing - 1 - 后处理概念
(加粗的内容需要留意)什么叫PostProcessing?Post Processing 中文直译:后处理(以前我是不知道是怎么回事,总觉得好高端的感觉,-_-)我们知道:在场景的所有需要渲染的对象,渲染完后,就可得到的图像内容,这个图像内容通常与我们的屏幕尺寸一样大。简单总结为:在渲染得出上面图像内容后,再对该图像内容处理。后处理因为是对图像内容处理,一般基本不会对几何处理。(Shad...原创 2019-08-24 18:04:42 · 1923 阅读 · 0 评论 -
C# 实现精简版的栅格化渲染器
MiniSoftRenderer精简的软栅格化渲染器,便于学习,实验用实现超级简单的功能VertexShader - to clip spaceVertexShader-PostProcessing - Perspective divide & Perspective correctPrimitiveAssembly - only triangle nowSimply cli...原创 2019-08-10 23:58:03 · 1137 阅读 · 0 评论 -
Unity Shader - 模型消融/淡入淡出效果
之前看过一些溶解的方式来显示与消失模型,但我还没去尝试过,大概也知道如何实现。那么先实现简单一些的运行效果上面的效果有时会抖动,是因为我的shader参数是再update里每帧传过去的,有些不够及时实现思路思路确定切面确定模型的片段在切面的哪一边根据与切面的距离做渐变过渡确定切面在这,一个切面,我使用的是,点法式:已知一点,与平面的法线,即可。P,NP, NP,N...原创 2019-08-08 18:32:59 · 4365 阅读 · 4 评论 -
用C# Bitmap作为画布写个3D软渲染器
3D 软渲染器,实现:Transformations,Rasterizer,FrontFace,Cull,DepthTest,Interpolation,VertexShader,PrimitiveAssembly,FragmentShader的实现原创 2019-07-16 00:21:52 · 2506 阅读 · 0 评论 -
Unity Shader - Noise 噪点应用,实现类似流水的表面效果
整体效果水平流动垂直流动扰动放大+扰动速度=激流PerlinNoise 纹理详细参考:柏林噪声(Perlin Noise)(译)下面简单说说柏林噪点可以用不同的平滑波函数来叠加,即可组合出柏林噪点如下:将它们叠加在一起同样,柏林噪点生成的噪点图(其实都是波的高低数据),也可以叠加,组合出另一个噪点图上面6个噪点图,叠加在一起,如下图:是不是很像云朵、烟雾一...原创 2019-08-12 21:05:48 · 6945 阅读 · 0 评论 -
Unity - Root Motion - how it works - Root Motion 是如何工作的
Root Motion - how it worksBody TransformThe Body Transform is the mass center of the character. It is used in Mecanim’s retargeting engine and provides the most stable displacement model. The Body O...翻译 2019-05-31 16:35:08 · 2064 阅读 · 0 评论 -
Unity - Curves 与Paramters联动使用 - 对动画文件(.fbx)的Animaion添加Curves的使用方式
Codeusing UnityEngine;public class ReadAnimCurves : MonoBehaviour{ public bool appliedScaleCurve; private Animator animator; // Start is called before the first frame update void S...原创 2019-05-29 18:06:12 · 518 阅读 · 0 评论 -
Unity Timeline 二次简单封装TimelineProxy(代理)
Running(由于优快云限制gif的大小不能超过5MB,所以录制过程我操作比较快,而且内容尽量缩减,gif质量降到最低了,不然大小限制) ShareTimelineProjectCode(代码有丢丢多,所以将Running放前面,Code放这)TimelineProxy/* * FileName: TimelineProxy * Author...原创 2018-08-02 18:34:59 · 3431 阅读 · 1 评论 -
C# Form.Show()方法 的一些线程内部特性
一般我们在多线程中,处理UI的一些界面更新;得使用到Invoke;但CheckForIllegalCrossThreadCalls=false;的方法一定不要用,不明白的话,大家可以上MSDN查这个参数的意思;不过从英文词上可以理解为:Check For Illegal Cross Thread Calls检测非法跨线程调用但该参数的设置为false,当然会有很多的原创 2012-11-19 15:04:16 · 4061 阅读 · 1 评论 -
C# XNA 自定义写了一个:MMatrix33的类(3 * 3矩阵类)
写这个的目的是为了,加深对MMatrix33作用,有什么用的理解;当然,里面的运算,为什么这写法,算法,我都是抄了别的语言过来的;以下部份运算,是参考了:AS3 Starling ,与网络上其它相关矩阵信息的运算方式;源码:using System;using System.Collections.Generic;using System.Linq;using System.原创 2013-08-30 17:03:15 · 2479 阅读 · 0 评论 -
C# WPF Main函数的编写
今天,从网上下载了一个WPF Style的设置DEMO源码项目;但项目输出类型是:类库;直接运行不了;以前在WinForm项目的话;就在这改一下项目类型;或是在Main函数加一些可视化设置,并用Application.run(指定的窗体实例)即可;但没想到;WPF项目连Main都自己搞了一套封装还是怎么的;在正常的WPF项目中,是没有Main函数的;当然,你要自己写原创 2013-09-02 19:31:05 · 2641 阅读 · 0 评论 -
正则:制作对文本信息提取,可方便于制作,WebGame的语言包提取
假如我们的webgame中,*.as文件中,包括了大量的:文本描述信息;(无论是什么语言:中文版有中文,对象其版就会有N种语言:英文,韩文、泰文、越南文、繁体中文、印度文,等等)如:var equipDescription:String = "这是一个装备";这样在制作工作提取:"~~~"之间的内容会提取到很多不相关的信息;那么我们就可以使用一个比较奇葩,少用的方法原创 2013-11-08 10:05:21 · 1332 阅读 · 0 评论 -
C# 写日志,高性能批量处理 -- Logger
当然了,可以使用:log4net 库;但目前该功能需求不需要用到这么强大的日志管理;直接写文件记录;所以就写了一个简单的;这是半成品,还可以用,还有地方可以优化;但再优化前,可读性比较好,我就上传了:using System;using System.Text;using System.IO;using System.Diagnostics;using System.Threading.T...原创 2013-12-11 13:13:37 · 10913 阅读 · 3 评论 -
C# WPF 相关
1)、WPF,中如何加载一个.xaml文件,并转为:Window对象实例:、加载、解析XAMLWPF的运行时XMAL解析器公开两个类:System.Windows.Markup下的:XamlReader、XamlWriter;XamlReader.Load();XamlWriter.Save();Load://假设有一文件:MyWindow.xamlWindow window原创 2013-08-27 10:06:22 · 3988 阅读 · 0 评论