草庐IT

Unity_Shader

全部标签

Unity2023, Unity2022, Unity2021的性能对比(帧率)

最近由于需要用到Unity最新版的一些功能,比如Spline,比如Foward+渲染,新项目用了Unity2022.3.5版本,但是出包之后,感觉帧率很低。本着好奇的态度,专门写了一个测试场景,分别在Unity2023.1.15,Unity2022.3.5,Unity2021.3.14版本,进行了测试,分别得出帧率:Unity2023.1.15--97帧左右Unity2022.3.5--99帧左右Unity2021.3.14 --180 帧左右(高!)在Unity2023.1.15下,用测试机oppoK11(12G内存版),进行了profile测试:在Google上查询后,发现国外道友也是遇到

【Unity2022】Unity实现在两个物体之间连出一条线

文章目录LineRenderer组件添加LineRenderer组件重要属性Positions(位置)Width(宽度)Material(材质)其他属性使用脚本绘制直线绳子运行结果其他文章LineRenderer组件我们可以使用LineRenderer组件来实现连线,该是Unity中的一个内置组件,它允许我们在场景中绘制线条。特别适用于创建路径、轨迹、激光或任何需要绘制直线的情况。添加LineRenderer组件要在游戏对象上添加LineRenderer组件,我们需要选择目标物体,然后在Inspector窗口中点击"AddComponent"按钮,并搜索LineRenderer。在添加之后,我

Unity控制程序退出

  大家好,我是阿赵。  最近把公司的游戏发布到各种PC的游戏大厅,遇到了挺多奇怪的需求。之前介绍了一些Unity发布PC端控制窗口最大最小化、修改exe信息等问题,这次来探讨一下退出游戏的问题。一、收到奇怪的需求  某游戏大厅要求,运行游戏后,如果玩家没有创建角色进入游戏,不准玩家退出游戏,点击exe窗口的关闭按钮,也不能关游戏。  先不讨论这个需求是否道德的问题。单纯从技术的角度,看看这个需求是怎样实现的。二、分析问题  由于游戏本身是通过Unity引擎来做的,所以只能通过Unity提供的API来解决这个问题。关于游戏退出的API,大概有这么几个:1、Application.wantsTo

Unity中Shader雾效的实现方法一

文章目录前言一、在片元着色器中使用如下公式计算`最终的颜色=lerp(雾效颜色,物体颜色,雾效混合因子)`1、获取雾效颜色2、物体的颜色一般通过纹理采样得到,此处用1代替测试3、获取雾效混合因子(由雾的距离和雾的浓度决定)二、在顶点着色器中,计算不同类型的雾效混合因子(在顶点着色器计算节省性能)Unity预定义好方便我们计算的四维变量unity_FogParams1、计算线性雾的雾效混合因子2、计算指数雾1的雾效混合因子3、计算指数雾2的雾效混合因子三、最终测试代码前言Unity中Shader雾效的实现方法一,按照之前的公式,我们自己来实现一下Unity中Shader雾效的原理基于上一篇文章继

Unity的碰撞检测(总结篇)

Unity碰撞检测系列文章结论总结:(1)有效碰撞的必要条件:      ①两个游戏对象至少有一个具备刚体。       ②两个游戏对象必须有至少一个碰撞器。       ③刚体的BodyType属性为Dynamic。(2)有效触发的必要条件:      ①两个游戏对象至少有一个具备刚体。       ②两个游戏对象必须有至少一个触发器。       ③刚体的BodyType属性为Kinematic或Dynamic。(3)在有效碰撞的前提下进行正确的碰撞检测和避免碰撞穿透的条件:      两个游戏对象在发生有效碰撞的前提下,要能够正确进行碰撞检测和避免碰撞穿透则至少有一个游戏对象的刚体的Co

Unity 检测鼠标是否在UI上的方法

 整理一下:1.官方提供的API:voidLateUpdate(){//该方法过于简单粗暴,所有有些不足之处,列如:1.检测不到返回细节,2.场景有3d可点击物体,也会杯当作UI检测(这点可能不准确,需要测试)//方法用于判断鼠标是否点击在UI上。这个方法通过检查//UI元素的RaycastTarget属性来确定是否在UI元素上。如果UI元素的RaycastTarget属性被勾选,//那么当鼠标点击在该UI元素上时,该方法将返回true;否则,返回false。if(EventSystem.current.IsPointerOverGameObject()){Debug.Log("点击了UI")

android - 无法在 unity java 插件上使用 google play 服务

我有一个用Java编写的Unity插件。在这个插件中,我需要获取新的GoogleAdvertisementID为此,我必须添加到list文件中:当我编译时,Unity抛出错误:ErrorbuildingPlayer:CommandInvokationFailure:Failedtore-packageresources.SeetheConsolefordetails./Applications/adt/sdk/build-tools/android-4.2.2/aaptpackage--auto-add-overlay-v-f-m-Jgen-MAndroidManifest.xml-S

Unity3D C# 基于观察者模式的全局消息机制(事件系统)

本文将从思路和实现讲解基于观察者模式的全局消息机制的实现过程如果喜欢请给我的博客或者我的项目点个免费的star吧项目内包含本文全部完整源码(可运行)一、消息机制虽然前两篇文章以及写过消息机制是为何物了,但是这里我还是想重申一下,但是稍微简略UnityC#实现简易消息机制消息机制填坑笔记(2)消息机制用于不同的类、模块之间的通信,让模块之间相互解耦,与消息中心耦合。A与B之间不再高耦合,而是分别与中心耦合,好处就是当模块数量倍增时,单一模块崩溃不会产生过大的异常,而且方便一个模块对多个模块广播他的命令。二、观察者模式在一个神秘的丛林里,有一群老鼠和一只猫,每只老鼠都在观察者猫,猫只要有风吹草动就

Unity项目转微信小游戏 微信小程序保姆教程,繁杂问题解决,及微信小游戏平台简单性能测试

前言借着某人需求,做了一波简单的技术调研:将Unity项目转换为微信小游戏。本文主要内容:Unity转换小游戏的步骤,遇到问题的解决方法,以及简单的性能测试对比微信小游戏的限制微信小游戏对程序包体大小有严格限制:首包必须小于2M,首包加分包(后加载)不得大于20M。当然我们还可以将游戏资源打包做成在线加载。但这部分微信也做了限制:持久存储区不得大于200M。也就是说如果你的游戏完整体验包大于200M,你需要做出适当取舍,哪些部分可以缓存到本地,哪些部分即使每次运行都要重新下载也不会逼疯用户。。。。。。首包小于2M的事也不用我们操心,微信小游戏平台为Unity的开发者提供了一个十分便捷的转换工具

[游戏开发][Unity]Assetbundle打包篇(5)使用Manifest二次构建资源索引

目录打包与资源加载框架目录正文正文开始前,先把打包代码放过来,请注意,前面的代码已省略,自己去对比前面的文章。本篇文章从第一次执行打包代码开始。publicvoidPostAssetBuild(){  //前面的代码省略,和上一篇文章一致Log($"开始构建......");BuildAssetBundleOptionsopt=MakeBuildOptions();AssetBundleManifestbuildManifest=BuildPipeline.BuildAssetBundles(OutputPath,buildInfoList.ToArray(),opt,BuildTarget)