- 博客(15)
- 收藏
- 关注
原创 Unity采样器过多导致URP默认的Lit.Shader报错(shader error in ‘universal render pipeline/lit’: maximum ps_4_0 samp)
Shader中多个Sample Texture2D,Sample Texture3D或者类似节点的使用,该类节点都需要一个采样器,如果Shader使用超过了16个纹理采样器,如多个Base Color,Normal Map等,就容易超出。是因为每种Shader Model和GPU都有一个对纹理采样器数量的限制,是因为每个采样器都需要在显卡占用一个独立的寄存器,而寄存器的数量是有限的,当超过限制,显卡无法分配更多的寄存器给新的采样器,因此会导致编译错误。2.什么原因导致纹理采样器超出16个?
2024-09-27 09:55:16
2455
1
原创 二.Unity中使用虚拟摇杆来控制角色移动
在PlayerManager中就是一些常规操作,设置方向,这里用了一个Vector2.SignedAngle的API,其作用就是返回传入向量和目标向量之间的角度,我们设定的目标向量是(0,1)也就是二维向量的正前方,下面画了一张图,应该会很清楚。虚拟摇杆实际上就给角色输出方向,类似于键盘的WSAD,也是一个二维坐标,也就是(-1,1)的范围,将摇杆的方向进行归一化传递给角色即可,创建一个名为PlayerManager的脚本,通过Character组件来控制角色的移动。
2024-09-12 15:59:35
1522
原创 一. Unity实现虚拟摇杆及屏幕自适应功能
一般虚拟摇杆的组成都是由轮盘和遥感的点组成,轮盘控制位移,限制在某个区域内,而点则是控制旋转,限制在轮盘内,因此需要用到的是Unity自带的UI事件,因此创建一个名为UIEventListener的类,去实现IPointerDownHandler,IPointerUpHandler,IDragHandler方法,通过事件监听回调来处理。手游里面很多类型的游戏都需要用到遥感功能,例如王者荣耀,和平精英等,之前的摇杆功能都是用类似于Easy Touch的插件进行开发的,今天不借助任何插件来实现虚拟摇杆的功能。
2024-09-09 14:58:44
1198
原创 Unity实现经验条动态自适应
我们首先得到是当前Canvas的高度 / 当前实际屏幕高度,得到当前画布和真实屏幕高度的比值,通过这个比值计算出当前屏幕的宽度,接下来我们要计算每个经验格子的宽度,于是就将我们根据动态计算的出来的 (当前屏幕宽度- 184)/ 10 = 单个格子经验条的宽度,这个184其实就是上面说的(8+10+76 + 9 x 10)就是这些间隙,得到之后,将格子背景,和格子本身的Grid Layout Group的Width进行赋值,便可以实现动态自适应。测试结果,以高度进行拉伸,完美适配。
2024-08-27 10:25:42
627
原创 Unity服务端开发实用工具WampServer64 + Navicat for MySQL
我们先通过MySqlConnection建立与数据库的连接,第一个server指的是当前的ip地址,由于我是本地数据库,因此是localhost也就是127.0.0.1,如果你数据库是在服务器上就需要填服务器的ip地址,第二是user id指的是建立链接的用户名默认是root,第三个指的是哪个数据库,第四个参数是设置数据类型,一般默认的都是utf-8。通过添加栏位,新增了varchar类型的name,和float类型的exp,其中varchar类型就是C#中的string类型。
2024-08-08 22:25:37
869
原创 实现一台PC串流运行两台VR头盔(超级详细的步骤)
主要是实现一台PC设备带动两台VR (HTCVIVE 或者Pico) 头盔进行串流的虚拟机方案
2024-08-02 18:16:50
2335
原创 Unity接入Steam平台详细流程
1.下载2.下载后导入Unity中,我们首先需要修改的就是steam的appid,找到工程目录中的appid文件,默认是480,是UnitySpaceWar的id,如果有自己的SteamID就填自己的,暂时没有申请下来可以默认填480测试3.找到SteamManager代码,挂载到一个跳转场景不会被销毁的物体上,然后找到其steam的appid改成自己的。
2023-11-28 16:20:53
8037
7
原创 XLua热更新环境配置
1.记录一下Xlua的环境配置,以免以后长时间不用忘记,首先找到XLua的官网也就是github地址XLuaGithub地址,将其工程进行下载。2.下载完成之后,解压并打包xlua的工程文件,将Asset文件夹下面的文件拖拽到Unity中3.然后Unity会自己创建一个名为Xlua的文件夹,这里面包含XLua的工程示例和API4.为了能够使用热更新的功能还需要在Unity的Asset同级目录导入Tool文件5.在Unity添加HOTFIX_ENABLE宏,(在Unity3D的File->
2021-04-22 14:50:07
275
原创 一.Pico开发之旅之无线打包与调试
一.Pico开发之旅之无线打包与调试在我们进行Pico开发的时候,总是需要连接一根数据线进行打包,这让我觉得不太舒服,而且Pico的调试输出很麻烦,通常是需要在Unity的场景中设置很多个Text组件在头盔内进行显示,这样调试的效率是很低的,因此我用了一种方式可以进行无线打包和调试。1.虽然说是无线,但是我们第一次还是需要进行usb连接,打开Pico的开发者模式,与电脑进行连接,连接好了之后,按下Win+R输入Cmd打开命令窗口,输出adb tcpip 5555,进行tcp模式的连接,连接之后会输出重
2021-03-18 15:37:11
4970
11
原创 Unity动态加载资源和动态脚本挂载的方式
在Unity中资源的加载有很多方式,通过Resource去进行动态加载,当需要热更新的时候,就需要通过加载AB包的方式,如果单独用一种方式进行加载的话,当需要用到另外一种的时候,往往需要对逻辑进行较大的更改,更改代码永远是不好的,这个时候我们面向接口,到时候只需要更换加载,而不需要去管代码的逻辑。资源的动态加载以及脚本的动态挂载,有两种方式,第一种需要预制体的名字和脚本名字保持一致,通过Type.GetType的方式获取到当前脚本的类型,那这样看到第一种相对简单也算是也一点限制,第二种呢,通过Attrib.
2020-08-11 23:36:47
8720
2
原创 Unity模板单例类的两种写法
1.不继承至MonoBehaviour的普通C#单例类using System.Collections.Generic;using UnityEngine;public class NormalSingleton<T> where T : class,new(){ private static T instance; public static T Instance { get { if(instance
2020-08-10 00:01:39
488
原创 三.Unity2019轻量级渲染管线(LWRP)深入学习
一.轻量级渲染管线资产要使用轻量级渲染管线(LWRP),必须创建LWRP资产并在“Graphics”设置中分配资产。LWRP资产控制轻量级渲染管线的一些图形功能和质量设置。这是一个可脚本化的对象,继承自“ RenderPipelineAsset”。在“Graphics”设置中分配资产时,Unity从内置渲染管道切换到LWRP。然后,您可以直接在LWRP中调整相应的设置,而不用在其他地方查找...
2019-11-20 14:34:24
3034
原创 二.Unity2019轻量级渲染管线(LWRP)入门
要使用轻量级渲染管道,您可以启动一个新项目或升级一个现有项目。使用LWRP的项目一旦完成,就必须创建可编写脚本的渲染管道(SRP)资产,然后为项目配置图形设置。以下章节详细说明了如何使用LWRP:1.使用LWRP创建一个新项目2.将现有项目升级到LWRP3.配置LWRP以供使用,包括创建SRP资产和更改图形设置。注意:使用LWRP制作的项目与“高清晰度渲染管线”或内置的Unity渲...
2019-11-20 10:40:50
5036
2
原创 一.Unity2019轻量级渲染管线(LWRP)
轻量级渲染管道(LWRP)是Unity预先构建的可编写脚本的渲染管道。该技术提供了可扩展到移动平台的图形,并且您还可以将其用于高端控制台和PC。您无需计算着色器技术就可以实现高质量的快速渲染。LWRP使用简化的基于物理的照明和材料。1.LWRP使用单遍正向渲染。使用此管道可以在多个平台上获得优化的实时性能。以下平台支持LWRP:.Windows和UWP.Mac和iOS.安卓系统....
2019-11-20 09:48:53
4140
原创 Unity常用类-Camera类
一.Camera Comptent: 2019年 8月3日 星期六下面总结且借鉴了一些Unity中的Camera组件的描述。如有错误,欢迎指出!!Clear Flags :清除标识:确定了屏幕哪些部分...
2019-08-05 20:03:03
1185
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人