草庐IT

UNITY_Z_0_FAR_FROM_CLIPSPACE的作用

在一个开了深度雾,平面和天空盒由头摄像机渲染,而材质球由正交相机渲染的场景下,调节正交相机的近裁剪面为负时,会出现材质球突变成雾的颜色的bug。需要把URP源码中的#define_FOG_FRAGMENT1注释掉一般来说,连续调节某个数值,变化也应当是连续的,而雾出现这种情况必然有哪个地方不对劲。解析UNITY_Z_0_FAR_FROM_CLIPSPACE的实现通过查看雾的源码,找到了UNITY_Z_0_FAR_FROM_CLIPSPACE,它是Unity内置线性雾中计算Factor的关键部分。realComputeFogFactor(floatzPositionCS){ floatclipZ

Unity读取写入Excel

1.在Plugins中放入dll,118开头的dll在Unity安装目录下(C:\ProgramFiles\Unity\Editor\Data\Mono\lib\mono\unity)2.写ExcelpublicvoidWriteExcel(){//文件地址FileInfonewFile=newFileInfo(Application.dataPath+"/test.xlsx");//数据操作using(ExcelPackagepackage=newExcelPackage(newFile)){//增加数据操作(重点在于这条操作语句与初次创建添加数据不同)ExcelWorksheetworks

Unity_网格碰撞器-MeshCollider-触发器-Trigger 网格碰撞器(MeshCollider)内部没有触发检测 只在表面有触发检测

Unity的触发器功能很好,但是也有问题。我来讲讲问题以及解决方案。先上视频给大家看看效果:自制触发器首先约定几个特殊名词。基元游戏物体:Cube、Sphere之类的。基元碰撞器:BoxCollider、SphereCollider之类的。基元触发器:把基元碰撞体的IsTrigger选中,就是基元触发器。高精度网格碰撞器:网格碰撞器不选中Convex,选中Convex会把网格碰撞器凹陷处闭合掉的,这就谈不上高精度。重叠:也就是触发状态。用基元触发器来触发一个高精度网格碰撞器:它只会在基元触发器与高精度网格碰撞器表面有接触时,才会认为是触发状态:一旦在基元触发器进入到高精度网格碰撞器内部,竟然会

Unity Instantiate的用法

之前总结Unity实例化物体的文章:Unity实例化物体以及赋予到父物体之下-CSDN博客现在回头看来,感觉总结得不够全面,尤其关于Instantiate的用法,过于简陋了。关于Instantiate,它实际上有10个语法:ObjectObject.Instantiate(Objectoriginal);ObjectObject.Instantiate(Objectoriginal,Transformparent);ObjectObject.Instantiate(Objectoriginal,Transformparent,boolinstantiateInWorldSpace);Objec

android - 将 Unity 与 Eclipse 集成 - 通信?

我是按照以下步骤制作的:IntegratingUnityandEclipse.我可以使用AndroidSDK或NDK调用函数(我在Unity中使用JavaScript或C#创建的函数),反之亦然吗?UnityPlayer和AndroidSDK或NDK有接口(interface)吗? 最佳答案 这可能对谁有帮助:正如@Oli提到的,您可以使用此方法在Unity和Android应用程序之间进行通信:UnityPlayer.UnitySendMessage("GameObjectName1","MethodName1","Messaget

Unity的GPUSkinning进一步介绍

  大家好,我是阿赵。  在几年前,我曾经写过一篇介绍GPUSkinning的文章,这么多年之后,还是看到不停有朋友在翻看这篇旧文章。今天上去GitHub看了一下,GPUSkinning这个开源的插件已经很久没有更新过了,还是停留在2017年的0.2.3版本。GPUSkinning的魅力在于可以在消耗比较低的情况下同屏显示很多个蒙皮动画的角色。  看了一下之前写的文章,当时的我,水平也比较有限,所以只是简单的介绍了一下这个插件的用法。这么多年过去了,我感觉可以更深入的讨论一下这个插件的用法,还有它的实现原理。一、使用说明和原理介绍1、下载和安装  由于最近上GitHub似乎有些困难,所以我这里

android - 如何在 cocos2d-x 中使用 SimpleaudioEngine 的 pitch, pan, gain 选项

我正在使用cocos2d-x将我的iPhone游戏转换为Android。我正在使用C++cocos2d-x引擎进行编码。控制音频对我的游戏非常重要,因为它是台球游戏。我能够使用cocos2d的SimpleAudioEngine中的playEffect(@"xxx.wav",pan,pitch,gain)函数来控制音频播放(音调、声像、增益)。但问题是在cocos2d-x中没有这样的选项。只有playEffect(charstr*)而没有其他选择。所以我无法控制音频(如音调、声像、增益)。我在cocos2d-x论坛上查看了那个问题。到目前为止,它一直是问题,而且是“计划外的”。这是一个非

Unity Shader - SV_POSITION 和 TEXCOORD[N] 的varying 在 fragment shader 中输出的区别

起因因另一个TA同学问了一个问题我抱着怀疑的心态,测试了一下发现varying中的sv_position和texcoord的值再fragmentshader阶段还真的不一样而且sv_position还不是简单的clipPos/clipPos.w的操作因此我自己做了一个试验:结果还是不一样的搜索发现无意发现[Unity]屏幕空间(视口)坐标(viewportcoordinate)的几种计算方法对比分析这篇文章中的:也就说,clipPostofragmentshader后的值是:x:[0~width],y:[0~height]的因此,fragmentshader中clipPos.xy/_Scree

Unity3D:向量运算

向量的几何意义几何意义上说,向量是有大小和方向的有向线段。点和向量的关系“点”有位置,但没有大小和方向,“向量”有大小和方向,但没有位置。所以使用“点”和“向量”的目的完全不同。”点”描述位置,“向量”描述位移。零向量零向量非常特殊,因为它是唯一大小为零且没有方向的向量。负向量几何解释:向量变负,将得到一个和向量大小相等,方向相反的向量。向量大小向量的大小就是向量各分量平方和的平方根设三维向量A(x,y,z),则A向量的大小为:|A|=√(x^2+y^2+z^2)二维向量同理Unity中代码实现Vector3pos;//向量//开平方计算Mathf.Sqrt(Mathf.Pow(pos.x,2

为虚幻引擎开发者准备的Unity指南

目录1.前言2.编辑器2.1Scene视图(视口)2.2Game视图(PlayinEditor)2.3.Hierarchy窗口(WorldOutliner)2.4Project窗口(ContentBrowser)2.5Inspector(Details)2.6Console(消息视图/输出日志)2.7Modes面板在哪里?2.8其他说明3.项目和资源3.1资源存储在哪里3.2资源是如何存储的3.3支持的资源格式3.4Scene(Map)4.Actor与游戏对象,以及组件4.1游戏对象与Actor4.2Unreal中的Actor4.3Unity中的游戏对象4.4组件4.5Unity中的组件4.6