自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unity简单的存档系统

这里使用了const关键字是因为const关键字限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。JsonUtility只能将带可序列化的public,[SerializeField]private转化为json格式。一个简单的计数器,点击加号数字加一,点击减号数字减一,一个存档按钮一个读档按钮。使用Unity的JsonUtility来进行存储和读取存档。创建存档系统脚本(包含加号的方法和减号的方法)1.创建一个文件保存的路径。可以看到存档系统正常运行。

2024-01-28 22:11:31 474

原创 Demo制作备忘录(射线实现散弹枪射击)

【代码】Demo制作备忘录(射线实现散弹枪射击)

2023-09-29 17:15:41 47 1

原创 解决第一人称穿模问题(懒人解决法)

首先创建新的相机,设置相机分别渲染的LayerMask(主相机移除武器Mask,新相机移除武器外的其他Mask)其实可以用两个摄像机,一个渲染环境,一个渲染武器,然后把两者的画面合起来就能解决此问题(零代码,懒人福音)完成,运行游戏,可以看到,虽然场景中已经严重穿模了,但是相机视角下并没有穿模。在制作第一人称,特别是Fps的时候经常出现类似穿贴墙穿模的问题。一般的解决方法需要代码或者重新设置碰撞检测,太麻烦了。回到主相机,在Stack一栏添加新相机。同时设置RenderType。

2023-09-05 18:00:02 192

原创 Unity官方对象池ObjectPool

Unity在2021.1版本新增了内置的对象池系统,众所周知对象池对于优化游戏,特别是当需要不断生成物体非常有用。对于一个懒人,看到可以自己不用苦哈哈的去敲一个对象池,那是相当的高兴,于是就到B站上找了一些视频,大概的学习了一下。之后就是使用对象池方法,用Pool.Get()和Pool.Release()来实现。练手项目我就随便新建了一个普通的3D core,放好地板、生成点,做好预制体。同时,在对象池的Creat(生成预制体)的方法中添加代码。就得到了一个自带对象池的自动生成方块的项目了。

2023-08-19 20:33:03 520

原创 FPS游戏枪械捡拾解决方法

我这边创建的GunRack是为了获取当前已经装备的枪械,因为我们知道如果使用Instantiate和Destroy,那么会很吃GC资源,特别是我这种做成z手机端的,如果频繁生成和销毁就会导致游戏卡顿,所以我这边是通过更改物体的位置来实现将枪拿在手里。具体的实现逻辑就是当我们检测到物体的Layer是weapon时,按下按钮,被检测到的物体(枪)就会变更父物体为我们的摄像机,然后在通过Local来调整物体(枪)相对父物体(摄像机)的位置。之后我们在创建一把枪,接着就要实现换枪的效果了。通过射线检测来获取枪械。

2023-08-09 20:18:40 138

原创 触屏滑动控制角色视角

我们的视角的移动其实就是通过旋转相机的x,y轴来实现的。不过这个时候如果联系之前的虚拟摇杆,我们会发现当我们在移动虚拟摇杆的时候也会判断我们视角的移动,因为触摸判断是整个屏幕,这是我们不想看到的,所以得限制视角移动得触摸判断区域,通过Rect绘制一片区域,只有当我们手指在那片区域移动时才可以移动视角,修改代码如下。首先先创建一个初始的Vector2(0,0,0),一个保存我们之后视角坐标的Vector2以及我们视角的移动速度。同时为了能方便直观地设置rect区域得位置和大小,使用红线绘制rect。

2023-08-02 18:47:21 184 1

原创 完善人物移动(CharacterController添加重力)

接着,我们创建地面检测,因为以上代码会一直执行,导致我们的下落速度即使在我们站在地上的时候也会一直增加,这是我们不想看到的,所以我们使用球形检测对象的Layer来判断我们是否是在地面上。),但是在实际运行中会发现,当角色走下斜坡或是跳跃后无法落回地面,这就不得不说一下CharaController这个组件的一些特性了。然后在之前的Move()中计算下落过程的速度,并将其赋值我们之前赋值的Vector3。同时我们在角色底下创建一个空的GameObject用来定位我们的球形检测的位置。创建几个地面检测需要的。

2023-07-30 20:32:27 1080 1

原创 利用Input System实现手机虚拟摇杆

最后就是最基础的UI创建,创建一个image挂个unity自带的On-Screen Stick脚本,脚本的第一个是改变摇杆的活动范围,第二个要设置成LeftStick【GamePad】之后在中间的actions创建一个action(我这边取名Move),然后最右边一栏中ActionType选择Value(因为我们需要的是传入值),之后,编辑我们的脚本数据,我这边因为脚本写了一些别的东西,我们现阶段只用我们之前创建好的。点击进入创建好的Action,创建属于你的actionmap。好了,终于到重头戏代码了!

2023-07-29 20:56:37 872

空空如也

空空如也

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

TA关注的人

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