自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 直接插入排序

【代码】直接插入排序。

2024-04-18 00:39:54 41

原创 unity和java时间戳互相转换

说明:unity中DateTime数据显示为这样子:2023/12/28 1:13:10,java中时间戳显示为这样子:1703754436923。

2023-12-28 17:19:42 384

转载 Unity3d按钮动态添加函数并传递参数

③.灵活性和方便性:通过捕捉本地调用方法的完整上下文,匿名委托可以轻松地访问并使用其外部作用域中的变量,无需显式传递参数。2.通过以上案例,对于不带参数的A函数可以直接添加,但是函数B是不能直接被添加的,可以通过委托Delegate进行添加。通过上面的函数运行后我们会惊奇的发现,没有我们预期的结果打印出0,1,2而是打印出了3,3,3。7.我们可以通过创建变量,让不同的按钮捕捉不同的上下文,或引用不同的变量。4.通过上面的打印会很惊奇,为什么不是我们预期的结果0,1,2?//打印结果 0,1,2。

2023-12-20 11:38:41 259

原创 用代码控制ScrollView的滚动操作

CenterPanel下的LightBtn下的按钮是省份发光轮廓按钮,此时点击发光轮廓按钮可进入下一界面,PolygonImg下是各个省份的不规则检测区域图片,用到了PolygonCollider2D组件,点击组件的编辑按钮,然后将初始点数量改成4(为了方便),就可以编辑不规则区域了,只要拖动线条就可以创建出新的点,试试就知道了。不规则图片的点击我采用发送消息的方式来进行通知,方便快捷。点击到中间省份地图中对应的省份轮廓图时,轮廓图要亮起来,左边省份列表中也要定位到对应的按钮,且按钮亮起来。

2023-12-19 17:42:43 536

原创 检测点击屏幕空白区域

在unity中,EventSystem.lsPointerOverGameObject用于检测当前点击点是否点击到了UI物体。查看EventSystem.cs的 源码,上面的那个函数用于鼠标点击检测,下面那个函数用于移动平台检测。同时检测代码用Application.platform不要用宏,因为可能你工程可能切换成了安卓平台在电脑端运行,用宏判断平台容易有问题。我们玩手游的时候经常会发现,我们点击屏幕空白区域就能关闭UI了,而不用去点击关闭按钮了,今天在这里我也来研究一下。

2023-12-12 14:46:22 105

原创 图标插件XCharts使用心得

1、获取组件://折线图1、Example00_CheatSheet:术语解析,帮助你更好的理解各个模块组件的含义和对应效果,脚本里的代码可以给自己作参考。2、Example01_UpdateData:对Series里的第一个serie做数据修改。需要自己手动创建一个图表,然后在挂上该脚本来看效果,运行后过了几秒钟,发觉已经有两个数据有了变化。

2023-12-08 19:18:24 477

原创 unity下拉框的使用

假设要做个民族选项的下拉框,我设置为200*60大小,1-5各部分都要设置为自己需要的大小。比如1的Label为140*60,2的Arrow为60*60,3的高度设为60,4的高度设为300,设置5的宽度3的宽度会自动调整。

2023-11-21 16:59:25 183

原创 将地形Terrain导出为obj文件

因为做网游的寻路导航功能,我用的是Recast Navigation,插件为unity3d_nav_critterai,通过这个插件能导出.navmesh导航文件给后端使用,后端也可以用Recast Navigation来进行导航,这样前后端的寻路导航就能保持一致了。还有一种方式就是导出地形的obj文件给后端使用也可以,前端使用自带的导航组件,因为写Recast Navigation的作者也写了unity自带导航组件,所以两者理论上寻路效果一致(自己猜的)。

2023-10-25 17:21:19 311

原创 Unity知识的一些补充

例如对于BaseLayerSMB.cs脚本和AnimatorTest.cs脚本,进行如下操作就可以在BaseLayerSMB中调用AnimatorTest脚本中的函数了。//默认层索引值为0。常用的是OnStateEnter、OnStateUpdate、OnStateExit这三个函数,分别表示"进入动画"、"动画更新"、"离开动画"。即切换动画状态时,不要用SetFloat(string,float)这样的形式,要用SetFloat(int,float)这样的形式。)//当前为Run动画状态。

2023-09-22 00:10:30 94

原创 ProtoBuf的使用

不要使用protobuf_net.dll,这个在手机上无法序列化和反序列化,要使用protobuf_net的源文件,博毅创为的MMORPG教程项目的MMO_Client项目的scripts/3rd目录下就有这个文件夹,放到自己项目里就行了。

2023-09-17 21:04:45 21

原创 Unity真机调试以及遇到的坑

报错:Autoconnected Player LuaException: xlua/util.lua:45: cannot set allowSceneActivation, no such field,像这种系统类的函数和变量无法访问的情况,是系统对代码裁剪了,其它的还有NavMeshAgent、NavMeshSurface、Animation、AnimationEvent、Application等。原因:丢失对应的dll文件,看了一下项目的Plugins的Android目录下,什么文件都没有。

2023-09-15 21:41:14 559

原创 Unity + UnityWebRequest的http网络通信

客户端发送一个http协议数据包给服务端,服务端收到之后就进行解析,然后将结果返回给我们,我们获得数据之后就可以写自己的业务逻辑代码。-->从 HTTP 服务器下载 AssetBundle (GET)a.创建UnityWebRequest对象。b.配置UnityWebRequest对象。-->从 HTTP 服务器下载文本或二进制数据 (GET)-->将原始数据上传到 HTTP 服务器 (PUT)-->从 HTTP 服务器下载纹理 (GET)-->从 HTTP 服务器下载声音 (GET)

2023-08-27 22:16:27 39

原创 新版寻路组件的使用 NavMeshSurface

我的项目是通过读取csv文件的内容来自动生成每一关的怪物、障碍物、道具等,因为每一关的障碍物位置不同,所以需要动态生成导航网格。准备好了接下来就是测试,场景中加一个cube一个sphere,cube要作为障碍物来使用,sphere上添加一个测试脚本,代码中的destPos就在cube后面的小红圈那位置,我就是希望我按下A键的时候球能绕过cube到达目的地。自己在做一个demo项目,需要让怪物能自动寻路,所以我决定使用新版的自动寻路,因为它可以动态烘焙(我太喜欢这功能了)。经过测试,小球都顺利到达了目的地。

2023-07-22 18:49:11 410 1

原创 使用unity hub安装unity并配置安卓环境

我去NDK官网下载了一个版本的NDK,长这个样子。找到SDK安装路径并打开,然后返回上一级并创建一个叫NDK的目录,然后把下载的NDK文件解压,把最里面的内容拷贝到刚才创建的NDK目录里,千万别有多余的目录,比如解压出来的android-ndk-r19目录,否则我们需要修改配置路径。点击右上角的"安装编辑器",在打开的页面点击"存档",再点击"下载存档",在打开的官网下载界面找到我们需要的版本,点击绿色的按钮"从Hub下载",之后就会跳到hub软件界面,然后勾选我们要安装的东西点击继续就行了。

2023-05-11 13:55:12 1799

原创 MySQL数据库从入门到精通(上)

打开之后找到username这一行,勾选PK,NN会跟着自动勾选上,这就相当于有了主键,然后点击右下角的"应用"。5.7及以后的版本可以使用MySQL Notifer来打开,所有版本还可以右键“我的电脑->管理”,打开计算机管理界面,找到“服务和应用程序->服务”,找到MySQL57,然后右键启动或停止来进行启动和关闭。打开MySQL Workbench编辑器后,在左上角有个"+"号按钮,可以创建新的数据库链接,名字随意,然后要输入用户名、密码、ip地址端口号这些。1.安装数据库,并进行配置,可以百度。

2023-05-10 18:23:27 112

原创 Processing快速使用

----processing的代码编写流程主要包括2部分,setup()和draw(),等同于Start()和Update()。setup用于设置程序的属性,如画布的大小、背景色、要导入的图片、字体等。draw用于循环执行绘图指令,如点、线、圆、图片等等。代码区分大小写,所有语句以分号";"结尾。-----变量类型:-----系统变量mouseX,mouseY和pmouseX,pmouseY分别表示鼠标当前位置和上一帧的位置。其它的算术运算符,关系操作符,逻辑操作符,条件判断都跟C#中一致。

2023-04-06 11:40:13 2567

原创 一、设计模式UML类图

一个矩形框就表示一个类。类图分3层,第一层是类名,如果是抽象类就用斜体表示;第二层是字段和属性;其中属性和方法前面有符号,‘+’表示public,'-'表示private,'#'表示protected。接口与类的区别是顶端有显示。组合是一种强拥有关系,体现了严格的部分和整体关系,部分和整体关系的生命周期一样。组合关系连线的两端还有一个数字1和2,这表示一个类可以有几个实例,如一只鸟有两只翅膀。组合关系用实心菱形+实线箭头来表示。继承关系用空心三角形+直线来表示。

2022-12-20 10:44:57 80

原创 UE 使用不同的玩家对象

3.为了让玩家对象能接受按键输入,在关卡蓝图中添加如下操作,其中BP_Pawn是玩家,从关卡中直接拖入编辑器中就行。Possess表示为玩家对象指定玩家控制器。有时候我们需要在项目中使用不同的玩家,比如游戏中的玩家和教学关卡中的玩家。2.在场景中拖入玩家对象BP_Pawn或BP_PawnJiaoxue。1.首先把项目中默认的玩家对象取消。

2022-12-16 14:56:02 176

原创 UE 游戏开发实战

若是在当前蓝图中定义了要执行的函数,那么Onject可以不用指定,默认就是自己。Spawn Actor from Class,配合Get Actor Transform,1输入要产生的Actor类型,一般为我们自己创建的蓝图类型,2要指定某个物体,即在这个物体处产生我们指定类型的物体。我的建议就是第一第三人称这类的Character角色,在玩家死亡时不要删除角色,要重生时直接设置角色到初始位置,切换到Idle动画,所有有需要的变量如血量还原到初始值,这样角色还能继续操控。

2022-12-01 16:28:14 1717

原创 UE 如何保存全局变量

接下来设计玩家类对象,对于系统自带的ThirdPersonCharacter蓝图我不打算把自己游戏的玩家功能放在里面,所以我创建了一个名为MyPlayer的蓝图组件类。选中场景中的第三人称角色,点击下面的"Add Component"按钮,再选择第一项"NewBlueprintScriptComponent",创建乐意蓝图组件类命名为MyPlayer。MyPlayer中可以定义一些自己游戏中会用到的玩家相关的变量,如生命值、分数等,同时需要定义一个GameManager类对象,方便对玩家的变量进行保存。

2022-11-30 15:17:12 1617

原创 UE 使用时间轴Timeline来实现动画效果

制作一个浮点值变化曲线,1s内从0变化到1。按4创建一个名为HUD的UI,有个名为Image0的图片,按下6时图片逐渐透明,按下5图片逐渐显示。3、添加了两个关键帧,开始帧(0.0,0.0)和结束帧(1.0,90.0),即物体的旋转角度1s内从0度变化到90度。UE中的时间轴Timeline可以实现一些基于时间的动画效果,比如旋转、移动、变色、透明等等。这样当按下小键盘上的数字1时,物体会从0旋转到90度,按数字2时, 物体会从90旋转到0度。功能:先按0获取物体初始位置,再按1和2物体就会左右移动了。

2022-11-28 18:26:50 3175

原创 unity 在怪物身上显示圈圈UI

其中m_Target表示怪物的关节,rectTrans是圈圈RedCircle的RectTransform组件,自己在脚本开始时记得先获取一下。我要显示的圈圈是名为RedCircle的Image,当然这是一个动态效果的圈圈,它有2个子物体。下面是圈圈的属性,最好使用这个Anchors属性配合下面的代码。下面附上我的UI框架的层级图。实际产生的圈圈RedCircle我是放在根Canvas的子物体Popup下的,所以用transform.parent.parent来获取它,自己可以根据实际情况进行修改。

2022-11-23 19:28:31 621

原创 unity 缩放粒子

那么我们想缩放粒子系统得话,只需要对所有子物体粒子做下简单修改就行。就是下面的红框部分都改成Local就行了。项目中经常会用到粒子,尤其是爆炸粒子效果,比如下图这样带多个粒子效果的粒子系统。

2022-11-23 19:07:39 1197

原创 unity 点击UI显示3D爆炸特效

我项目分辨率为1920*1080, 经过测试,屏幕坐标没问题,一开始Image在屏幕中心位置时打印出(960,540),不过移动Image时世界坐标worldPos一直没有变化,一直等于相机的世界坐标,这就让我无语了,所以昨天先不管这个了,改其它反馈去了。然后,X,Y表示像素坐标,根据(X,Y)相对于屏幕的位置,得到游戏世界中的点相对于截面P的位置,我们也就将屏幕坐标转换为了世界坐标。首先截取一个垂直于摄像机Z轴的,距离为Z的平面P,这样不管X,Y怎么变化,返回的点都只能在这个平面上;

2022-11-23 19:03:10 948

原创 UE 项目UI的快速设计和显示UI

在本文中,将学习如何利用UE的动态图形UI设计器(UMG)实现一些基础的游戏内HUD元素和前端菜单。你将学习如何实现体力和能量条,以及如何跟踪和显示玩家弹药量。你还将学习如何创建用于启动游戏、设置分辨率或退出游戏的主菜单。之后你将学习如何添加用于暂停游戏或返回主菜单的游戏内暂停菜单。步骤1 :创建一个UI,在资源文件夹中右键,然后如下图选择1再选择2,命名为HUD。步骤2:创建另外2个控件蓝图,一个主菜单MainMenu,另一个暂停菜单PauseMenu。

2022-11-14 19:30:43 3805 1

原创 UE Actor一些常见的功能

ToggleVisibility是开关功能,不断调用会让物体不断地在显示和隐藏之间切换。带Hidden的函数控制能力比带Visibility的函数强一些。因为我平时是用蓝图写项目功能的,所以这里提到的是蓝图中的实现方法。延迟销毁物体:两种方法,等同于unity中的Destroy(Acor1,1f)禁用物体:等同于unity中的Acor1.SetActive(false):先在关卡中选中物体TestCube1,然后在关卡蓝图中如下操作。销毁物体:等同于unity中的Destroy(Acor1)

2022-11-11 17:50:42 1582

原创 1. 为unity开发者准备的UE4

unity和UE引擎对应数字区域是相同的,1是视图编辑区,unity有scene和game两个视图,UE只有一个,所以UE中没办法在运行时像unity那样在scene中用箭头图标来移动物体。想要向游戏中导入素材,可以在Content目录下新建子目录,如Map、Model、Texture等,然后将素材文件复制到Content中对应的子目录中,或者直接拖动到子目录下。4就是物体的属性面板,5是UE的系统自带物体,就跟unity中系统自带的Sphere\Cube之类的物体一样的。3.支持的资源文件格式。

2022-11-11 15:31:05 1067

原创 unity 项目中用到过的插件

做了很多年的互动体感项目了,下面列举一些我在项目中用到过的插件。2.船要添加碰撞体刚体,添加脚本Buoyancy,还要添加2个子物体RippleCreator,放在船尾两侧。水插件(清澈、有水花和反射):RealisticWater,适合于大型水面,但是没有涟漪效果。动画效果:DOTween,超级好用我最爱,位置、颜色、UI坐标、大小、透明等动画效果都能实现。路径:Curvy,适合做各种不规则路径,路径由自己放的路径点自动计算生成。刀光武器拖尾特效:Better Trails,武器拖尾或移动物体拖尾。

2022-11-10 18:34:26 632

原创 unity 使用扫描仪和红外线框制作项目--热带草原

说明:扫描一次会生成2张图片,如第一次扫描是名字为1和2的图片。Update里每隔10帧就检测一次,检测目录里是否有对应的图片,有的话就加载图片然后进行识别,识别失败的话就会打印信息提示,识别成功的话就会根据内容产生对应的动物。使用扫描仪和红外线框制作的公司项目--热带草原,使用富士通扫描仪扫描二维码,然后程序识别二维码后出现对应的草原动画,手拍动物动物会跑。思路:一开始把存放图片目录清空,方便图片从2开始识别,所以程序里的m_Index默认值是2,每次识别成功之后会加2。

2022-11-10 17:38:15 426

原创 unity 使用kienct制作项目--华山论剑

使用kinect制作的一款姿势识别体感项目。能识别4种姿势,普通攻击(左手或右手向前击出)、金钟罩(两手张开画圆)、如来神掌(双掌合十然后右手击出)、九阳神功(双手举起)。

2022-11-10 15:42:37 276 2

原创 unity 使用姿态传感器制作互动项目--太极平衡桩

使用深圳维特智能WT931姿态传感器来制作互动项目,就是一个人站在平衡桩上,同步控制场景中的迷宫模型旋转,从而让小球进入洞里面。

2022-11-10 14:55:06 646

原创 unity 使用socket制作局域网项目--激流勇进

2.能做水面波纹涟漪的插件DynamicWaterRipples,本来划船的水波纹是用这个插件不是上面那个插件的,但是这个插件的水面有面数限制,不能太大,不然起伏的波纹会看到明显的三角面严重失真,所以这个插件只能用于小片水面,如固定画面的池塘小河等,像划船这种用到的河流以及湖泊海洋等大型水面不适合。公司接了一个多人划船项目,开始使用一个程序来制作的,有多个相机,后面因为水面的反射问题,无法实现水面在两个相机的画面里有不同的反射效果,故只能使用联机模式。来保存要发送的数据,保证所有数据都能顺利发送。

2022-11-10 12:52:54 537 1

空空如也

空空如也

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

TA关注的人

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