向宇it
* QQ交流群:826534924
* 商务合作微信:xiangyu_it
* 定制开发微信:xiangyu_it
* 微信:xiangyu_it
* QQ:2564196401
展开
-
【untiy造轮子】实现人物受击抖动和闪烁
【代码】【untiy造轮子】实现人物受击抖动和闪烁。原创 2023-05-03 21:07:07 · 508 阅读 · 0 评论 -
【unity小技巧】常用的方法属性和技巧汇总(长期更新,2024/6/13更新)
移动力翻转单例泛型单例取绝对值检测鼠标旋转取整枚举屏幕和世界转换获取对象的唯一标识ID鼠标控制摄像机聚焦和平移归一化操作获取图片宽高碰撞检测触发器检测将值限制在范围删除具有标签的对象ListlocalPosition和Position随机数IndexOf查找字符串在目标字符串或数组中的索引位置鼠标显隐不运行调用函数鼠标是否位于UI上字典TileMap常用操作画布组图片拉伸摄像机像素化抗锯齿获取动画和动画进度Unity常用的属性标签和关键字原创 2023-06-04 12:25:52 · 1692 阅读 · 9 评论 -
【unity造轮子】封装资源管理系统代码,包括对象池功能
定义管理系统通常指的是管理游戏中各种静态资源的系统,例如预制体、材质、纹理、音效等。一个好的定义管理系统应该具备以下特点:友好易用的接口:定义管理系统应该提供一组方便易用的接口,供程序员使用。通过这些接口,程序员可以查询、加载、卸载、删除、更新游戏资源。自动化管理:定义管理系统应该能够自动地管理游戏资源的生命周期。例如,当资源不再使用时,自动卸载该资源,并将内存返回给操作系统,从而降低游戏的内存占用率。可扩展性:定义管理系统应该具备可扩展性,能够方便地添加新的资源类型,支持新的资源格式。原创 2023-05-05 18:35:22 · 537 阅读 · 0 评论 -
【unity造轮子】2d制作机枪打击特效
修改为Additive,这是一直混合透明的效果配置粒子特效修改x的旋转角度拖入前面创建的材质。原创 2023-05-03 00:03:51 · 183 阅读 · 0 评论 -
【Unity小技巧】Unity探究自制对象池和官方内置对象池(ObjectPool)的使用
什么是对象池?对象池的作用?我们该如何使用对象池?原创 2023-08-18 08:41:05 · 2534 阅读 · 2 评论 -
【unity小技巧】使用贝塞尔曲线实现导弹随机攻击敌人,也可以用于平滑拾取物品
可以用来收集金币,收集经验,导弹攻击敌人的平滑运动过渡效果原创 2023-06-03 22:50:20 · 1693 阅读 · 4 评论 -
【unity造轮子】一定高度掉落,受到一定力度的撞击,扣血
/ 注意:此代码假定角色的生命值是名为“health”的变量,并且已初始化为起始值。// 我们需要检测角色从一定高度掉落时扣除生命值。//受到一定力度的撞击,扣血。原创 2023-04-28 16:48:12 · 243 阅读 · 0 评论 -
Unity ads广告插件的使用
Unity Ads SDK 由领先的移动游戏引擎创建,无论您在 Unity、Xcode 还是 Android Studio 中进行开发,都能为您的游戏提供全面的货币化框架。使用 Unity Ads 将各种广告格式合并到游戏中的自然呈现点中。例如,您可以实施激励视频广告来构建更强大的游戏经济,同时为您的业务赚取收入,或者在自然游戏暂停期间引入全屏插页式广告,而不会中断玩家体验。Unity Ads SDK 通过单个 SDK 将您的游戏连接到 60 多个需求来源。使用货币化仪表板管理和优化游戏中的曲面点。原创 2023-04-09 12:12:11 · 616 阅读 · 0 评论 -
Unity多人联机的实现
实现多人联机的方法有几种,具体取决于你的具体需求。以下是一些选项:Unity Multiplayer:Unity有自己的内置网络解决方案,称为Unity Multiplayer(以前称为UNET)。这允许您创建可以在互联网或本地网络上玩的多人游戏。您可以在官方Unity文档中找到有关Unity Multiplayer的更多信息。第三方网络解决方案:还有许多第三方网络解决方案可用于Unity,例如Photon Unity Networking(PUN)和Mirror。原创 2023-03-31 14:42:01 · 3529 阅读 · 0 评论 -
unity如何实现砍树功能?以及如何性能优化?
尽可能减少树的数量 隐藏远处的树木 使用简单的模型和纹理 避免过多的碰撞检测 使用对象池 使用延迟调用原创 2023-03-31 10:30:40 · 747 阅读 · 0 评论 -
unity实现简单的摄像机震动效果(包括普通摄像机和虚拟摄像机)
用代码实现摄像机简单的震动效果。原创 2023-05-17 22:29:19 · 1657 阅读 · 0 评论 -
【unity】封装一个AB包资源加载管理系统
【代码】【unity】封装一个AB包资源加载管理系统。原创 2023-05-10 22:41:31 · 213 阅读 · 0 评论 -
unity控制摄像机跟随玩家三种办法
将相机拖到人物的游戏对象上,也就是让相机成为角色的子物体,这样相机就会跟随角色移动但是这样会存在问题1.相机会随着人物的翻转而翻转2.相机跟随人物没有缓冲效果,移动比较僵硬。原创 2023-04-09 15:16:36 · 6977 阅读 · 0 评论 -
【unity小技巧】Unity实现视差效果与无限地图(附git源码)
如何提升你的画面感?动态的背景设计可以丰富我们的游戏效果,当你在游戏中行走或奔跑时,你将能够感受到身体在空间中的运动,仿佛真的置身于其中。通过Unity实现视差效果和无限地图可以提升游戏的表现力和玩法,增加游戏的吸引力和可持续性。这些特性对于打造出色的游戏体验至关重要。视差效果:视差效果是通过在不同的层级上移动物体,使其从不同的角度观察时产生错位感。这种效果可以增加场景的深度和立体感。在游戏中,视差效果可以用于创建2D或3D场景中的远近景效果,使得游戏更加具有逼真感和沉浸感。原创 2023-08-23 12:08:25 · 1049 阅读 · 0 评论 -
【Unity小技巧】如何在 Unity 中使用我们的Cinemachine虚拟相机跟踪多个目标
这种相机很适合用在格斗游戏或boss战之类的大致效果。原创 2023-10-28 13:51:07 · 402 阅读 · 0 评论 -
【unity小技巧】适用于任何 2d 游戏的钥匙门系统和buff系统——UnityEvent的使用(附项目源码)
当开发2D游戏时,钥匙门系统和buff系统是常见的游戏机制。当开发2D游戏时,钥匙门系统和buff系统是常见的游戏机制。如果让你开发一个钥匙门系统,你的想法可能是写个钥匙控制脚本,再写个门脚本控制开门,当人物触碰钥匙然后调用对应的门代码,打开对应的门,这样做无疑是没什么问题的,但是当要扩展一个钥匙打开多门,或者不同钥匙打开不同门的情况,系统的扩展性和可读性就会变得很差。而这里我分享一种方法,使用UnityEvent实现这些系统。原创 2023-10-19 16:03:59 · 627 阅读 · 2 评论 -
【Unity小技巧】可靠的相机抖动及如何同时处理多个震动(附项目源码)
相机的抖动,网上其实已经有非常非常多的教程了,之前我也写过一篇文章,感兴趣的可以先去看看unity实现简单的摄像机震动效果(包括普通摄像机和虚拟摄像机)但有时我们可能需要两个震动同时发生,例如,如果我们开启了大门并且又收到伤害,我们希望两个震动结合在一起我在这里的规则是,更强的震动被优先考虑,但我们不要停止弱震动的进展,而是一起工作,一旦完成了强震动,弱震动就会继续最终效果。原创 2023-10-28 12:11:41 · 1279 阅读 · 0 评论 -
【unity技巧】Physics2D Raycast、Overlapcircle、OverlapBox检测的用法
我们可以去使用Raycast方法(射线检测),让他发射一条向下的射线,如果这条射线能检测到任何添加了Collider组件的平台,那就意味着我们的角色接触地面了方法第一个参数为射线发射点第二个参数 为射线的方向第三个参数为射线的检测距离检测距离我们不能写成无限长,检测的最大距离,应该是人物的中心点,到我们人物的【底部】再多出一点点的距离(一点点的距离我用0.1来表示),射线是从我们图片当中的中心点发出的我们可以通过【】直接获取这个整张图片一半高度在检测平台跳跃时,我们通常并不会使用Raycst。原创 2023-06-04 14:23:55 · 4339 阅读 · 2 评论 -
unity实现弹射子弹
unity实现弹射子弹,子弹在不同敌人之间来回弹射,发射自动选择最近的敌人,然后每次随机选择附近的敌人进行弹射,可以控制弹射次数,比如3次后子弹销毁可以通过以下步骤在Unity中实现弹射子弹的效果:1.创建一个子弹对象和敌人对象,并在子弹对象上添加一个控制脚本BulletController,用于控制子弹的弹射行为。原创 2023-05-12 15:00:15 · 2752 阅读 · 0 评论 -
unity存储信息的方式,保存读取背包、游戏进度,连接MySQL数据库
为了在Unity中存储信息,有几种方法可供选择。最常见的方法是。PlayerPrefs是一种简单的存储小量数据(如玩家偏好或游戏设置)的方法。它易于使用,不需要任何外部库。但是,不建议用于存储大量数据或敏感信息。Serialization是另一种在Unity中存储数据的方法。它允许您保存和加载复杂的数据结构,如类和数组。Unity提供了几种序列化选项,如BinaryFormatter、XML和JSON。但是,序列化可能会很慢,可能不适合实时应用程序。原创 2023-04-10 21:15:31 · 1737 阅读 · 0 评论 -
unity实现子弹散射效果和闪电链效果
实现爆炸散射效果可以按照以下步骤进行:1.准备子弹模型和爆炸特效模型,可以使用粒子特效或者模型。2.创建子弹和敌人模型,同时添加刚体组件。3.创建子弹的脚本,绑定到子弹上。4.在脚本中,对子弹的 OnTriggerEnter 或 OnCollisionEnter 函数做出响应,检测敌人碰撞事件发生。5.如果碰撞到了敌人,就创建一个爆炸粒子特效,并将子弹销毁。6.在爆炸粒子特效中,创建多个小子弹,随机攻击附近的敌人。原创 2023-05-12 15:11:47 · 2220 阅读 · 0 评论 -
Unity中通过地形笔刷添加的树进行交互,实现砍树效果
为了与Unity中通过地形笔刷添加的树进行交互,您可以使用TerrainData类来访问树实例并修改其属性。要使树倒下,您可以使用TreeInstance.rotation属性更改其旋转。要在树倒下时生成资源,可以在倒下的树的位置处实例化预制件。请注意,您需要在检查器中或通过代码分配woodPrefab变量。此外,您可能希望添加一些随机性到实例化的预制件的旋转和位置,以使其看起来更自然。原创 2023-03-31 13:56:44 · 505 阅读 · 0 评论 -
【unity小技巧】委托(Delegate)的基础使用和介绍
在Unity中,委托(Delegate)是一种用于处理方法回调的特殊类型。它允许您将方法作为参数传递给其他方法,并在需要时调用这些方法。委托在游戏开发中非常有用,特别是在事件处理、消息传递和异步操作方面。它提供了一种灵活的方式来注册和触发方法,而无需显式地知道这些方法的实现细节。个人理解:可以把委托理解为一个容器,容器里面放可以放很多函数方法。一调用委托,里面所有的函数方法都会同步被执行。原创 2023-07-10 20:21:13 · 5311 阅读 · 0 评论 -
unity读取json文本,渲染主角和不同人物的对话文本
在按下空格键后,我们通过调用DisplayNextSentence方法展示下一条对话,该方法从列表中取出下一组对话,并将其姓名和对话内容显示到nameText和dialogueText组件中。为了实现对话展示的打字机效果,我们在TypeSentence协程中,分别遍历每个对话句子的每个字符,并逐步展示。最后,在场景中挂上这个对话管理器的脚本,并将jsonFile属性拖到项目中的dialog.json资源文件中,即可实现在Unity中读取JSON文本文件并展示主角和人物对话的效果。原创 2023-05-12 18:21:57 · 237 阅读 · 0 评论 -
【Unity小技巧】在Unity中实现类似书的功能(附git源码)
欢迎来到游戏的书籍之门,一个充满魔力和想象力的世界。在这里,你将体验到一种全新的游戏界面交互方式——翻书。通过Unity引擎的强大功能,我们成功地将书籍的神奇氛围融入到游戏中,为玩家带来了一种崭新、富有艺术感的页面选择方式。你可以把这个效果用在任何地方,比如关卡选择,商店,故事介绍,物品背包,成就页面等等,这能极大的丰富你的游戏。无疑,游戏UI交互是极为重要的,对比死板的页面,他能给玩家一种新颖感,让你的游戏在一开始就抓住每个玩家的心!原创 2023-08-25 11:05:46 · 625 阅读 · 2 评论 -
【unity】简单的泛型单例类
这样,当你需要访问 MySingletonClass 的实例时,只需要调用 MySingletonClass.Instance 就可以了。如果此时实例还没有创建,代码会自动创建一个。同时,每个继承 Singleton 的类都有机会在实例创建时执行自己的初始化方法(重写 Init() 即可)。原创 2023-05-11 15:26:20 · 171 阅读 · 0 评论 -
【Unity小技巧】手戳一个简单易用的游戏UI框架(附源码)
开发一款游戏美术成本是极其高昂的,以我们常见的宣传片CG为例,动辄就要成百上千万的价格,因此这种美术物料一般只会放在核心剧情节点,引爆舆论,做高潮展示!而另外一种表意方武:则是通过玩法设计,层层导玩家深入探讨游戏世界,这里则需要策划的精心设计和程序的秃头爆肝,因此对于绝大多数游戏而言,选择UI来进行剧情展示、玩法交互和核心表达才是最物美价廉的选择。原创 2023-08-29 23:32:27 · 1186 阅读 · 2 评论 -
【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用,以及存储加密/解密方法安全问题
保存# 最后调用Save函数将这些key存入磁盘查找# HasKeyl函数中可以通过传入Key得到一个bool的返回值读取删除# 删除某个key# 删除全部。原创 2023-09-18 23:25:16 · 1367 阅读 · 2 评论 -
unity封装一个控制中英文字体切换的脚本
上面的脚本中,LanguageManager为管理器对象,通过读取lang.json文件来获取文本内容,使用SwitchLanguage方法来切换文本语言,并通过LoadLanguage来更新UI显示和字体。最后,我们在Canvas对象上添加两个Button对象,并将它们的onClick事件分别绑定到SwitchLanguage方法上。现在,我们可以通过点击按钮来实时切换文本内容和字体。首先,我们需要创建一个Canvas对象作为UI的父物体,并添加一个Text组件用于显示文本。原创 2023-05-12 17:35:15 · 324 阅读 · 2 评论 -
【unity造轮子】伤害飘字效果,封装代码+DoTween实现伤害飘字效果(2024/07/08补充)
【unity造轮子】伤害飘字效果,封装代码+DoTween实现伤害飘字效果(2024/07/08补充)原创 2023-05-02 23:23:54 · 520 阅读 · 0 评论 -
Unity3D实现背包系统、物品的拖拽、拾取物品功能
要在Unity中实现背包系统,你可以创建一个脚本来管理库存和物品。首先,在Unity中创建一个名为“InventoryManager”的C#脚本。在这个脚本中,你可以创建一个将存储在背包中的物品列表。接下来,创建一个用于存储在背包中的物品的脚本。在这个例子中,我们将创建一个名为“Item”的脚本,它有一个名称和一个描述。现在,你可以为背包创建一个UI。在Unity中,你可以使用Canvas和UI元素来创建背包UI。你可以创建一个面板来显示背包中的物品。原创 2023-03-31 12:39:34 · 2975 阅读 · 0 评论 -
【Unity小技巧】最简单的UI设置适配方案
这期来讲一个简单的UI设计方案,很多同学可能搞不懂锚点、轴心这些概念,导致做好的UI在别人的设备上,乱跑或者是重叠,或者是参加游戏老发时间比较紧来不及做适配,都可以来试试这个方法,通过填充边框来保持游戏画面的原始比例,所以它的缺点也很明显,在一些移动设备上会浪费比较大的显示面积。unity不同设备UI变形?UI在不同设备上如何适配?原创 2023-08-24 10:27:27 · 1581 阅读 · 0 评论 -
unity3D动画切割 3D模型骨骼 3D动画穿模问题 1D2D混合动画 设置动画IK
这篇是unity动画系统的进阶,需要有一定基础的人看,包括素材材质修复,动画的切割,骨骼映射,混合动画,摄像机跟随角色,MatchTarget扶墙,Ik实现实现人物扛起木头,Timeline过场动画,如果还不了解,可以看完我前面的基础篇再来看就会好理解很多。原创 2023-04-08 00:03:55 · 337 阅读 · 0 评论 -
【unity技巧】实现马里奥一样更具物理感的长按长跳与短跳
在现实世界物理上,一个物体的跳跃跟落下,时间应该是相等的。我们都知道对于Unity内置的游戏物理引擎,它们也是这样来处理最简单的跳跃的运动。但其实这样的效果并不是我们所想要的。可以想象,一个角色跳上去,然后轻飘飘的落地,这样的手感是很糟糕的,我们并不希望下落的过程耽误我们太多的时间,同时长时间的下落过程会让角色看起来没有质感。原创 2023-06-04 12:06:17 · 755 阅读 · 0 评论 -
【推荐100个unity插件之15】TimeLine的详细使用介绍
幽默风趣的过场动画,不仅让玩家享受片刻的安宁的同时,也会推进着故事的发展,如今的游戏,不仅仅需要我们去塑造强烈的可玩性,沉浸式的游戏体验,也是每一款优质游戏所追寻的。从远时代RTS经典冰封王座3、真三国无双系列,近一点,比如火焰文章与后宫们之间的剧情对话、奥德赛的全球追新娘行动、动物森友会、维京纪元、灾厄启示录等等,不同的游戏中,你都能看到过场动画与对话系统的元素,那你是否想在自己的游戏中,添加电影级别的过场动画呢?原创 2023-08-27 22:40:15 · 3839 阅读 · 0 评论 -
【Unity技巧】Unity跳过启动logo 跳过Unity启动屏/Logo/加载页
【Unity技巧】Unity跳过启动logo 跳过Unity启动屏/Logo/加载页原创 2023-05-10 14:20:13 · 3457 阅读 · 4 评论 -
【unity造轮子】实现类似愤怒的小鸟,弹弓效果
它定义了一个Slingshot类,其中包含了弹弓的拉伸、拖拽和弹射等功能。具体来说,它使用LineRenderer组件来绘制弹弓的前后两条线,使用SpringJoint2D组件来模拟弹弓的弹性,使用Rigidbody2D组件来模拟弹丸的物理行为。在Dragging函数中,它计算了鼠标位置和弹弓位置之间的距离,并根据最大拉伸距离来限制弹弓的拉伸程度。在LineRendererUpdate函数中,它计算了弹弓和弹丸之间的距离,并根据SpringJoint2D组件的弹性来更新LineRenderer组件的位置。原创 2023-04-28 16:03:13 · 149 阅读 · 0 评论 -
unity2d实现简单的敌人AI
以上代码中,我们使用了A*算法来寻找敌人与玩家之间的最短路径。其中,FindShortestPath函数用来寻找敌人和玩家之间的最短路径,AvoidObstacles函数用来检测前方障碍物并躲避之,Update函数用于在游戏运行时不断调用这些函数。1.寻路追踪玩家:首先,需要获取敌人和玩家的位置信息,并计算它们之间的距离。可以使用避障算法,(比如基于射线的避障算法、膨胀算法、人工势场算法)来帮助敌人在遇到障碍物时自动绕开它们的路径。3.寻找最短距离:可以使用A*算法来寻找敌人和玩家之间的最短路径。原创 2023-05-12 15:41:20 · 630 阅读 · 0 评论 -
【unity小技巧】taptap过审,隐私协议最简单解决方案
最近各个平台的隐私协议,监管越来越严,游戏需要明确自己的隐私协议是做啥的,需要在所有sdk没有启动前,就向用户展示隐私协议,特别是最近我的游戏上架taptap遇到的问题,一直审核不过由于我是使用unity开发,所以自己找了一个方法,去做到这个隐私协议的合规化。隐私协议最好是 在unity 还没有启动前就展示给玩家,让玩家同意或者拒绝。所以,我们找到unity里面的 unityplayeractivity.java 脚本。原创 2023-05-10 14:08:45 · 1331 阅读 · 10 评论 -
unity实现武器绕着人物旋转
接下来,可以通过调节offsetAngle来控制每个武器之间的间隔,使它们看起来合适。在这段代码中,weaponCount是武器数量,rotationSpeed是旋转速度,offsetAngle是每个武器绕人物旋转的半径。2.将每个武器作为“Weapons”对象的子对象创建,并设置它们的位置以便绕着人物旋转,也可以使用脚本自动化这个过程。1.创建一个空对象,作为人物的子对象,命名为“Weapons”,并将其位置设置为与人物相同。通过计算每个武器需要的角度,可以控制武器的位置,然后通过旋转来控制武器的方向。原创 2023-05-12 15:59:33 · 433 阅读 · 0 评论