自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(127)
  • 资源 (7)
  • 收藏
  • 关注

原创 UnityHub无法打开项目问题,打开项目闪退回到hub界面

大家可以试一下把许可证退还之后用unityhub打开项目会有闪退,但是提示信息是没有许可证相关的提示,这种情况下只需要将我们的许可证重新激活即可。下图我以unityhub3.2.0-c5版本做解释点击添加完成先关后续步骤即可重新激活许可证这是我原来遇到最简单处理的一种。如果还不成功,可以将账号登出重新登录重新激活即可。

2022-09-14 10:33:37 5713 5

原创 Unity矩阵平移旋转缩放Matrix4x4

矩阵平移旋转缩放

2022-07-19 15:01:02 1425

原创 矩阵加法减法乘法计算

最近在做重写帧同步矩阵相关运算的时候突然发现自己矩阵乘法运算怎么做了,这里参考别人文档写一篇让自己巩固下矩阵算法。(文章中括号就不画了,用[]代替了)

2022-07-18 16:20:01 185

转载 大端和小端传输字节序

大端和小端在计算机中是以字节为单位,每一个地址对应一个字节,一个字节8bit。在C中,除了8bit的char以外,还有16bit的short,32位的int,64位long,当然具体要由编译器决定,可以通过sizeof来获取不同类型在内存中占用的字节数。在计算机系统中,当物理单位的长度大于1个字节时,就要区分字节顺序。常见的字节顺序有两种:Big Endian(High-byte first) 和 Litter Endian(Low-byte first),当然还有其他字节顺序,但不常见,例如Middle

2020-08-18 14:23:03 4324

转载 ProtoBuffer C#生成DLL文件

本文介绍Windows下如何生成ProtocolBuffer的C#版本的dll1、下载最新C#protobuffer源码地址:https://github.com/google/protobuf/releases2:生成dll文件解压文件,然后找到csharp\src目录,然后打开Google.Protobuf.sln(首先你要先安装Visual Studio2012或者更新版本)。打开之后,重新编译就会在工程Google.Protobuf下生成不同版本的dll文件。3:生成Net Frame

2020-08-13 16:18:04 849 1

原创 DLLNotFoundException:xxx tolua... 错误打印

一、DLLNotFoundException介绍首先区分一个问题只要是与DLLNotFoundException相关的必然是丢失了DLL文件,不管是安卓还是Window还是Mac原理都是一样的。二、Plugins文件夹既然是跟DLLNotFoundException相关,必然是与Plugins文件夹相关,原因是因为Plugins文件夹中存放了我们使用插件的兼容dll,只有Plugins文件夹包含了对应平台的.dll或者.so文件才能让我们的插件正常使用。文件目录结构如下:这些是我们常用平台的一些目

2020-06-09 15:33:23 1323 2

原创 Unity PlayerPrefs存储数据在Windows环境中本地存储的位置

一、编辑器模式下的PlayerPrefs存储位置1.Win + r 输入regedit进入注册表界面2. HKEY_CURRENT_USER/Software/Unity3.CompanyName和ProjectName可以在Unity->Edit->Project Settings->Player中查看和设置二、Window包模式下的PlayerPrefs存储位置(CompanyName和ProjectName可以在Unity->Edit->Project

2020-06-09 15:11:05 2381

原创 C#字典和列表转LuaTable

function DicToLuaTable(Dic) --将C#的Dic转成Lua的Table local dic = {} if Dic then local iter = Dic:GetEnumerator() while iter:MoveNext() do local k = iter.Current.Key local v = iter.Current.Value di

2020-05-28 16:13:41 1053

原创 优化小地图(非RawImage方法,节省性能)

一、小地图设计1.首先俯视需要用到的地图,截一张俯视图(ps让美工修一下,大小可以采用512 * 512 其他的也可以)。2.我们创建一个大小一样cube让这个大小刚好包围我们需要的地图场地。3.通过3D世界坐标转换成屏幕的2D坐标显示小地图。二、功能实现1.截取俯视图2.创建Cube包裹住场地,并且创建一个子物体坐标为(0,0,0)此时cube的子物体的坐标如下这里说一下我们只需要将我们小地图中的人物的transform.position 实时赋值给 当前子物体,然后获得子物体的l

2020-05-18 17:37:34 440 1

原创 Unity2017升级到Unity2018在Window7上输出空异常错误问题

一、环境Window7二、现象Unity报空异常(.NET 4.x Equivalent)三、日志-----CompilerOutput:-stdout--exitcode: -2147450750--compilationhadfailure: True--outfile: Temp/Unity.TextMeshPro.dll-----CompilerOutput:-stderr----------Failed to load the dll from [?.], HRESULT: 0x8007

2020-05-18 13:17:00 443

原创 解决Unity物体速度过快无法进行碰撞检测(碰撞检测穿透)

一、解决碰撞检测穿透方法一首先我们知道只要是跟碰撞相关的基本都是离不开刚体 Rigidbody这个组件,刚体中有一个参数适用于检测碰撞的 如下图Collision Detection就是碰撞检测。然而有时候开发游戏,对于高速运动的物体(比如:子弹/大炮,或者很高处自由落体的物体),即使再三确认加了Rigidbody组件,检查了碰撞检测的代码完全没有错误,但仍然会出现 物体直接穿过另一个物体 的问题, 则说明这个碰撞检测的程序对于高速运动的物体而言会出错。Unity2017物体的Rigidbody组

2020-05-12 15:20:25 9345 2

原创 Unity新动画系统之动画层和动画遮罩

一、介绍之前分享过FSM动画控制系统以及状态树融合的缓慢起跑的文章,这一节来讲一下Unity的动画层Layer和这招avaterMask二、动画骨骼遮罩层使用Weight权重,对应着这一层动画在所有动画中所占的比例。上图老说明,new layer中的weight为0,模型的动画效果就是base layer中的动画;0-1之间,模型的动画效果就是这两层动画的混合;mask 遮罩,手动控制模...

2020-04-22 22:16:27 1226 3

原创 Unity手机移动设备重力感应

一、引入大家对重力感应应该都不陌生,之前玩过的王者荣耀的资源更新界面就是使用了重力感应的概念,根据手机的晃动来给实体进行晃动。下图的王者荣耀刚开始的界面其实就是使用的移动设备的重力感应。二、介绍Unity内部的重力感应其实已经写好了,这篇文章只是讲下如何使用。Unity内部有一个Input.acceleration这个属性。下面是官方的解释Description 描述我们看到这个函...

2020-04-22 22:07:24 1194

原创 提前预测刚体移动轨迹 预测运动轨迹

一、效果二、介绍通过计算Unity物理系统的运动方位来判断下一步移动的位置,主要用于物体运动的提前预测,通常使用于炮弹发射,机枪发射,足球篮球网球的运动等多种真实运动的物体。三、脚本RigidbodyExtension.cs 计算工具类using System.Collections;using System.Collections.Generic;using UnityEngin...

2020-03-27 23:57:15 2666

原创 物理模拟重力 斜抛运动计算 抛物线计算

一、介绍模拟Unity原始重力系统进行重写,可是实现发射到指定目标位置并能继续当前力进行自身的弹力与摩擦继续运动二、原理将Unity原始不受控制的物理系统使用一个模拟重力的方式进行斜抛等操作,在其落地瞬间将模拟的重力还原给Unity的原始重力,从而达到可任意抛物线移动的物理系统三、实现如下PhysicsUtil.cs 工具类using UnityEngine;/// <su...

2020-03-27 23:35:10 2077

原创 刚体任意可编辑轨迹运动 模拟重力

一、简介1.运动轨迹采用的是DOTweenPath的方式进行刚体的运动 Rigidbody.DOPath(Vector3[] v,float t) (Dotween工具可自行下载)2.运动轨迹这里采用可编辑贝塞尔曲线来确定轨迹 工具用法3.轨道运行结束时,判断结尾运动轨迹来复原原始重力所带来的的向量速度继续运动二、效果如下效果一效果二效果三三、小工具分享CSDN下载链接淘...

2020-03-27 23:11:35 322

原创 Unity 贝塞尔曲线工具获取运动轨迹

一、介绍贝塞尔曲线这里有不明白的可以去看 贝塞尔曲线 这篇文章。二、Unity中贝塞尔曲线工具介绍1.创建一个空物体挂在上BezierSpline.cs脚本组件2.由上图可知刚创建出来的有两个点和两个手柄组成3.我们可修改其坐标看下效果4.这样我们就可以获得这两个点之间的指定数量的点来作为某个物体的运动轨迹5.增加点三、脚本构成如下此工具总共三个脚本构成1.放在Edi...

2020-03-27 22:41:28 1325

原创 Unity之DOTweenPath轨迹移动

一、介绍 DOTweenPath二、操作说明1、Scene View Commands(1)SHIFT+CTRL:add a waypoint加一个轨迹点(2)SHIFT+ALT:remove a waypoint移除一个轨迹点2、INfo(1)Path Length:轨迹长度3、Tween Options(1)AutoPlay:自动播放(2)AutoKill:播放完自动销...

2020-03-27 22:14:42 2849

翻译 Unity网格篇Mesh(二)

4.生成额外的顶点数据我们的网格目前处于一种特殊的情况下。因为我们到目前为止还没有给他们法线向量,默认的法线向量是(0,0,1)(垂直于屏幕向里),而我们需要的正好相反。法线工作原理是什么呢?法线是垂直于面的向量。我们通常使用单位长度的法向量,并向量指向面的外部,而不是内部。法线可以用于确定光线与顶点的夹角。这个细节的使用取决于Shader。作为三角面它永远是平的,因此它不应该需要被提...

2020-02-12 17:35:48 988 1

翻译 Unity网格篇Mesh(一)

程序代码实现网格这里根据CSDNSpring5211的一篇文章,进行网格学习为网格材质合并作为一个基础本文的目标创建网格坐标使用携程计算他们位置利用三角形确定一个面自动生成法线添加纹理坐标和切线这篇教程中我们将利用顶点和三角面创建一个网格。原英文篇1.渲染如果你想要在Unity显示一些东西,你需要一个网格。他可以是一个3D模型从另一个程序倒入的(3dmax,maya)...

2020-02-12 15:37:16 6123 1

转载 Unity Shader Early-Z技术

Early-Z技术传统的渲染管线中,ZTest其实是在Blending阶段,这时候进行深度测试,所有对象的像素着色器都会计算一遍,没有什么性能提升,仅仅是为了得出正确的遮挡结果,会造成大量的无用计算,因为每个像素点上肯定重叠了很多计算。因此现代GPU中运用了Early-Z的技术,在Vertex阶段和Fragment阶段之间(光栅化之后,fragment之前)进行一次深度测试,如果深度测试失败,就...

2020-02-09 22:00:00 2958

转载 Unity-Shader-渲染队列,ZTest,ZWrite

ZTest(深度测试)和ZWrite(深度写入)之前一篇渲染队列的例子中,虽然渲染的顺序反了过来,但是物体之间的遮挡关系仍然是正确的,这就是z-buffer的功劳,不论我们的渲染顺序怎样,遮挡关系仍然能够保持正确。而我们对z-buffer的调用就是通过ZTest和ZWrite来实现的。首先看一下ZTest,ZTest即...

2020-02-09 21:32:29 354

转载 Unity-Shader-渲染队列

渲染简介在渲染阶段,引擎所做的工作是把所有场景中对象按照一定的策略(顺序)进行渲染。最早的是画家算法,顾名思义,就是像画家画画一样,先画后面的物体,如果前面还有物体,那么就用前面的物体把后面的物体覆盖,不过这种方式由于排列是针对物体来排序的,而物体之间也可能有重叠,所以效果并不好。所以目前更加常用的方式是z-buffer算法,类似颜色缓冲区缓冲颜色,z-buffer中存储的是当前的深度信息,对于...

2020-02-09 14:49:30 849

原创 Unity向量按照某一点进行旋转

一、unity的旋转首先要知道一点就是在Unity的旋转中使用过四元数进行旋转的,如果对一个物体的rotation直接赋值你会发现结果不是你最终想要的结果,这个时候我们需要去借助Quaternion来进行旋转。二、向量按照原点进行旋转用到的Unity内置方法Quaternion.AngleAxis(float angle,Vector3 axis)第一个参数就是我们需要旋转的角度 angl...

2020-01-17 15:40:38 6601

原创 Unity人物移动的几种方法

方法一:transform.Translate再讲之前先知道Vector3.forward就是朝前也就是Z轴的方向,如果不明白的可以看一下图世界坐标系移动代码中写的是根据世界坐标轴的z轴方向移动,然后再看一下右上角的世界坐标轴发现是根据世界坐标轴的z轴移动是没有问题的,这里在观察一个问题就是这个物体的自身坐标轴的z轴是朝向左侧的,这个就是因为方法第二个参数的作用,Space.World为根...

2020-01-09 16:17:06 3712 4

原创 向量的叉乘

向量的叉乘 a ^ b高中数学中我们可以得到公式 a * b = |a| * |b| * sin<a,b>可以使用叉乘获取两个向量的左右位置,如下图所示案例一(案例中将y去掉,相当于俯视坐标系之后x,z): Vector3 a = new Vector3 (1,0,2); Vector3 b = new Vector3 (2,0,1); Vecto...

2020-01-08 14:43:30 3803

原创 向量的点乘

向量的点乘 a * b高中数学中我们可以得到公式 a * b = |a| * |b| * cos<a,b>可以使用点乘获取两个向量的前后位置,如下图所示案例一(案例中将y去掉,相当于俯视坐标系之后x,z): Vector3 a = new Vector3 (1,0,2); Vector3 b = new Vector3 (2,0,1); // Use this fo...

2020-01-08 14:20:50 1940

原创 Timer延迟循环计时器

资源名:TimerService使用方法如下:其中MyTimer 与 TimerService类为工具类,将SuperInvokeTag 进行封装使用 MyTimerService.Inst.CreateTimer(2f,()=> { Debug.LogError("延迟两秒"); }); //MyTimer m...

2020-01-06 12:13:37 257

原创 Unity重写Inspector简化分组配置文件

重写Inspector创建分组管理配置文件创建修改参数参数对应类using UnityEngine;public class GameConfig : ScriptableObject { /// <summary> /// float参数 /// </summary> public float test_float = ...

2020-01-06 11:06:27 972

原创 摇杆控制人物+FSM+缓冲跑步与停止+双摇杆控制人物技能释放

资源搜索 FSMRoleCtrl.unitypackage

2020-01-02 17:49:02 193

原创 区域摇杆

资源中搜索MoveAreaJoySticks (免费)

2020-01-02 17:37:27 70

原创 UGUI长按按钮的实现(技能蓄力使用)

脚本如下:using UnityEngine;using UnityEngine.EventSystems;public delegate void ProcessHandler(float p);public delegate void FinishTouchHandler(float p);/// <summary>/// 长触摸事件/// </summa...

2019-12-31 18:25:03 685 1

原创 3D物体之间的引导线(LineRender方法)

引导线:脚本如下:using UnityEngine;[RequireComponent(typeof(LineRenderer))]public class GuideLine : MonoBehaviour { /// <summary> /// 目标点1 /// </summary> public Transform po...

2019-12-30 18:18:12 970 2

原创 Unity 人物方向旋转详细讲解

人物的旋转有很多种这里介绍旋转使用四元数的方法Quaternion.LookRotation(Vector3 dir);Quaternion.Lerp(Quaternion a, Quaternion b, float t);一、在介绍之前我们需要理解Unity的向量也就是Vector3首先我们创建一个Unity的脚本,将坐标系用Unity画出来如下图中白球的位置为0,0,0坐标的原...

2019-12-27 14:54:53 2614 1

原创 摇杆控制人物移动

一、UI搭建解释JoyStickBar是图片背景JoyStickPoint是图中心的拖拽物体JoystickPointer是空物体为Image方向位移Image是箭头JoyStickRadiu是提供拖拽物体与背景图的距离,也就是背景图(大圆)的半径,将其位置移动到背景图的最左边缘二、3d模型搭建三、脚本JoyStickBar.csusing Syste...

2019-12-20 14:27:52 656

原创 UI跟随3D人物

UI跟随3D人物人物血条或者对话框一、方法一将人物坐标转换为2D的UI坐标UI_Follow脚本挂载到需要跟随的3D人物上offset为偏移量rectTransform为需要跟随的UIUI普通创建无需调整Canvas的Render Mode模式,无需将UI放到3D人物下面public class UI_Follow : MonoBehaviour { /// <sum...

2019-12-19 17:38:12 215 4

原创 Unity 数据存储PlayerPrefs管理类

Unity 数据存储PlayerPrefs管理类实现存取实体类对象存储格式为Json格式源码如下:Singleton.cs//单例模板public class Singleton<T> where T : new(){ private static T _Instance; public static T Instance { ...

2019-12-18 17:50:35 357

原创 Unity Timer两种计时器

Timer两种计时器一、倒计时计时器(常用语UI倒计时显示)这个计时器是一个继承自MonoBehavior的脚本,使用的时候直接使用静态方法创建即可可以同时控制多个物体互相不影响计时器代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public delegate vo...

2019-12-18 16:38:48 998

原创 HTTP分数排行榜

Unity中向服务器发送用户名和得分,并存入数据库,再讲数据库中的得分按照降序的方式下载到Unity中。一、创建数据库首先,我们要在MySQL数据库中建立一个简单的数据库,用来保存用户名和得分,使用MySQL提供的MySQL Workbench工具只需要几个步骤即可完成这个工作。1.确定完整安装了MySQL,启动MySQL Workbench(我这里用的8.0+版本),它是一个图形化的数据...

2019-11-25 16:08:42 219

原创 MySql 8.0+ 报错:mysqli_connect(): The server requested authentication method unknown to the client

MySql 8.0中的更改错误原理:官方将MySql 8.0+以后的版本改变了原有的mysql_native_password身份验证改为caching_sha2_password的验证方式,使其安全性得到提升。对于服务器,default_authentication_plugin系统变量从mysql_native_password到caching_sha2_password.此更改仅适用...

2019-11-25 13:16:46 2056

RigidBodyExtension.unitypackage

通过计算Unity物理系统的运动方位来判断下一步移动的位置,主要用于物体运动的提前预测,通常使用于炮弹发射,机枪发射,足球篮球网球的运动等多种真实运动的物体。

2020-03-27

PhysicsMissile.unitypackage

将Unity原始不受控制的物理系统使用一个模拟重力的方式进行斜抛等操作,在其落地瞬间将模拟的重力还原给Unity的原始重力,从而达到可任意抛物线移动的物理系统

2020-03-27

BezierPhysicTrajectory.unitypackage

运动轨迹采用的是DOTweenPath的方式进行刚体的运动 Rigidbody.DOPath(Vector3[] v,float t) 运动轨迹这里采用可编辑贝塞尔曲线来确定轨迹 轨道运行结束时,判断结尾运动轨迹来复原原始重力所带来的的向量速度继续运动

2020-03-27

CreateConfig.unitypackage

重写Unity本地Editor OnInspectorGUI,添加分组管理配置文件的参数,提供更加方便的可视化管理配置文件,让配置文件更加清晰,简化复杂度。

2020-01-06

FSMRoleCtrl.unitypackage

FSM动画控制器实现动画任意随意切换并实现附带缓冲的起跑和停止,双摇杆控制技能释放方向,附带人物模型等多个动画

2020-01-02

MoveAreaJoySticks.unitypackage

Unity3d 区域摇杆控制人物移动的具体实现包。使用摇杆控制人物转动和与位移速度,越接近中心移动速度越慢,越接最大半径,也就是边缘移动速度最快。

2020-01-02

Joystickbar.unitypackage

Unity3d 摇杆控制人物移动的具体实现包。使用摇杆控制人物转动和与位移速度,越接近中心移动速度越慢,越接最大半径,也就是边缘移动速度最快。

2019-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除