自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unity2D--关于2D游戏的切图小技巧

在Unity2D游戏中,在制作过程中有时会使用一些游戏素材来增加游戏的趣性但在一些裁剪游戏素材的过程中我们会发现,当我们裁剪完之后为他添后Animation后,游戏素材可能会出现上下浮动的现象。举个例子:通过上述四幅图片我们可以发现一般我们通过Sprite来裁剪图片我们一般都会以图片的中心来进行裁剪,以图片中蓝色圆圈来进行判断,但我们把拖进Animation中我们便会发现动画便会进行上下移动,这肯定不符合我们的预期。所以,我们要对图片进行一些修改。以第一张照片为例:我们可以发现该长度为12

2021-08-09 15:19:26 1182

原创 Unity--高度解耦和(事件的监听与广播系统)

在Unity中我们通常要通过鼠标注册事件来完成当我们点击按钮触发某一效果,或许我们可以通过鼠标注册来完成,或者通过从其他脚本中通过单例模型来解决但这样可能会产生一些不必要的影响,所以我们可以利用事件的监听以及广播来完成对此鼠标注册的替换。例子:如上图所示,当我们点击场景中的按钮时我们可以将文本New Text替换为你好。(未使用鼠标注册事件以及单例模型)。1.无参类型EventCenter脚本作用:用于监听,广播,移除监听的脚本。首先我们需要定义一个字典用于储存事件码,以及委托。接着定义添

2021-04-22 20:11:00 499

原创 Unity存储游戏(二)

在上次我们已经介绍了一些关于Unity存储游戏的方法Unity存储游戏(一),接下来将会介绍剩下的二种方法,分别为Json方法以及Xml方法。一:JsonJSON:是一种语言无关的发送和接收数据的常用格式。可以使用它来跨平台的传输数据。JSON序列化:将存储对象 转化为JSON类型。JSON反序列化:将JSON转化为存储对象。{“SchoolID”: “1”,"students": [ { "firstName": "小", "lastName": "明

2021-04-17 20:01:18 541

原创 Unity游戏存储(一)

在许多游戏中当我们因为一些问题无法接着进行游玩,我们都会选择保存,以便后面有空时,接着游玩。接下来,我们会学习一些Unity有关的存储方法。一:Unity-PlayerPrefs(数据持久化)这是Unity自带的用于本地持久化保存与读取的类,采用的是键值对的方式来进行存储,一般通过键名来进行获取。PlayerPrefs有Int,float,string类型。保存数据PlayerPrefs.SetString(“Color”, color);PlayerPrefs.SetInt(“Number”,

2021-04-14 19:55:10 3166 2

原创 Unity-----ObjectPooL(对象池)简单应用与理解

例子对象池是什么,我们可以把他理解为一个存放物品的柜子,就比如商城的共享充电宝,当我们需要用的时候把它拿出来,当我们用完时把它放回去。这样可以节省内存。平常我们在Unity生成物体时用的方法Instantiate()生成一个新的物体,当它结束它的使命时我们便使用Destroy()方法来销毁它。举个例子,例如CF当我们使用枪攻击时,是不是会生成子弹,如果我们射击十次便会生成十次子弹,当我们射击一百次时,在脚本中,我们便要生成一百次,且当子弹完成它的使命时,便要销毁,我们已经生成了一百次,我们还要销毁一百次。

2021-03-30 20:31:22 1300

原创 Unity——动画结束后销毁绑定该动画物体

在Unity中制作游戏时会碰到一些物体播放完动画结束后,将动画销毁。如:炸弹爆炸完后,产生的爆炸效果,在勾选Loop的情况下,动画的最后一帧上的图片也会停留在场景中,如:上述图片便是播放完动画后,遗留下的动画,我们可以通过两种简单方法来去除遗留的动画。1.在动画的最后一帧添加事件由上述我们可以看到,在Samples值旁边有两个图形,没用红圈圈住的是添加帧数的,而用红圈圈住的则是添加事件的按钮,我们在该动画的最后一帧添加事件。挂载该动画的物体上要添加脚本,并实现销毁方法。因为在事件上我们要调用此

2021-03-25 21:15:37 4969

原创 Unity--UI组件Button略解以及Transition中的Animation与直接添加Animation的区别

Button组件:用来响应来自使用者的点击来启动或确认操作的组件。Button界面上有Interactable,Transition,Navigation以及On Click()。作用:1:interactable:交互,取消勾选则点击失效。2:Transition:过度。点击旁边的None可以进行替换。可以根据游戏的需求来设置不同的效果。Color Tint(色彩):可以改变按键的颜色。sprite swap(精灵交换):可以在点击按键时交换按键上的图片。Animation(动

2021-03-15 21:46:12 2418

原创 Unity3D----甜品消消乐匹配原理和方法以及交换方法

如上图中,消消乐的原理是将三个一模一样的物体进行匹配然后销毁,在上图中我们将橙色和蓝色进行互换那么布丁甜点便有三个完成了匹配,这样就可以消除三个布丁甜品。原理:在游戏中我们可以将匹配分为行匹配以及列匹配,不能进行斜着匹配,在匹配前要判断两个甜品是否是相邻的。相邻的两种情况:一种是X轴坐标轴相同,y的绝对值相差一。另一种是Y轴坐标轴相同,x的绝对值相差一。甜品交换原理:有时我们在交换甜品时可能会不小心误触,可能导致我们互换错误,所以我们要将两个甜品重新返回初始的位置。在脚本中定义一个方法用于交换甜.

2021-03-07 21:54:36 1754 1

原创 Unity--初识Live2D Cubism以及通过代码来实现Live2D模型的基本功能(二)

在上一章中介绍了Live2D人物的模型创建,动作以及表情接下来在这一章中剩余的Live2D人物功能。如上述图中我们还可以发现小姐姐的头发会随着头的转动也会伴随着型变,并且小姐姐也可以自动眨眼,以及随着我们拖拽着鼠标进行移动,小姐姐也会随之进行移动,这些都可以通过脚本来实现。4.眨眼在Live2D中已经设定了关于自动眨眼的类EyeBlinkMotion因此可以调用。定义在Void Start()中初始化在Void Update()中实现功能5.鼠标拖拽定义在Void Start()

2021-03-03 21:31:15 968 1

原创 Unity--初识Live2D Cubism以及通过代码来实现Live2D模型的基本功能(一)

Live2D Cubism Editor 3.2界面由图中的橙色圆圈以及红色圆圈所圈画的便是对Live2D模型人物的一些动作上的控制。橙色圆圈:此界面同PS一般,前面的小眼睛是用于隐藏人体结构,比如隐藏足,得到效果,如下:我们可以发现该人物的足便被我们隐藏了。红色圆圈:此界面可以控制Live2D模型人物的一些动作如转头,低头等等的动作,如将角度X滑动到最右半边,得到效果如下:可以发现小姐姐将头移动到左边,可以通过调整一些数值来达到自己想要的效果。通过上述我们了解了Live2D人物如

2021-02-28 16:13:48 5208

原创 Unity甜品消消乐----障碍物销毁以及彩虹糖的特殊销毁

上述图中用红色圆圈所圈画的饼干为障碍物,但可以通过实现将三个同类型的甜品(或以上)进行销毁便也可以将饼干障碍物进行销毁。原理:让销毁的物体进行遍历四周是否存在障碍物(饼干)只要在饼干四周有销毁那么饼干就要被销毁(无论是基础甜品的三个销毁亦或是特殊甜品进行一行一列的销毁)饼干自身上的两个判定:1.它叫做饼干。2.它可以被销毁。具体代码:Sweets[x, friendY].Type == SweetsType.BARRIER && Sweets[x, friendY].ca.

2021-02-19 17:56:24 437

原创 Unity甜品消消乐--核心原理

此游戏为甜品消消乐游戏,会大概说一些核心的算法,如有错误请指出。思路:消消乐游戏是一种休闲类的游戏,大家都应该玩过,如上述图片中饼干是障碍物,其他的甜品我们可以来使其数量为三,来使它们消除。最常见的消除是我们通过在一行或者一列来使其同一种甜品的数量来达到三个或者以上来使其消除,来获取相应的分数奖励。所有对应的我们要创造三个列表来存储这些在一行或者一列完成匹配的甜品。这三个列表分别是:行匹配列表,列匹配列表,以及完成匹配列表。(当在一行或者一列中我们完成三个或者以及大于等于三个的甜品时我们将其放入完成匹.

2021-02-08 22:40:00 1794 1

原创 Unity3D----触发检测与碰撞检测

在许多游戏有这机关或者金币,玩家可以去触发,在Unity中有触发检测以及碰撞检测来实现触发游戏场景中的一些道具。1.碰撞器发生碰撞的条件:主动方必须有rigidbody组件,发生碰撞的两个游戏对象必须有Collider,被动方对于rigidBody组件可又不可无。方法:2.触发器发生触发的条件:发生碰撞的物体两者其中之一有rigidbody组件即可,发生碰撞的两个游戏对象必须有Collider组件,其中一方勾选IsTrigger即可.如图所示,玩家是白色的球,玩家要捡取宝箱来获取对应的分数,

2021-01-31 13:23:08 1585

原创 Unity捕鱼达人5-----鱼群的生成

在捕鱼达人的游戏中可以发现鱼群会从四面八方来进行生成并且有些鱼群会进行直线游走,游戏鱼群会进行转弯游走,以上是这个游戏的核心之一。原理:可以在游戏界面的外面一圈放置几个空物体(该空物体类似鱼的出生地),让鱼群随机从这几个空物体进行生成。图中用带有箭头的线条其实就是鱼群的行动轨迹,可以通过脚本来控制实现鱼群的行动路线(直线游动或旋转)。Unity中的效果:可以看见在游戏界面外有一圈白色线框的正方体,这就是鱼群的生成点,在Hierarchy面板中创建一个空物体让这些生成点为这个空物体的子物体,方

2021-01-23 16:11:32 2385 1

原创 Unity3D--Navigation导航系统

前言:在许多游戏中都有着自动寻路系统,当玩家们通过鼠标点击场景中某一位置时,玩家便可以自动向此方向移动,现在Unity便有Navigation系统(自动寻路系统)。一:Navigation在Unity中的位置二:Navigation基础知识1.搭建基础场景将方块做为场景搭建的基础,我们设置胶囊体为玩家,在平面上设置正方体为障碍物(场景中用红圈所圈画),在设置两处楼梯。2.设置导航网格设置导航网格要将基础建筑中的物体选中并在Static中选择设置为Navigation Static。接着选

2021-01-14 16:18:39 4605

原创 Unity捕鱼达人4-----鱼的游动动画以及死亡动画实现以及对应子弹击中鱼后造成伤害的实现和生成金币特效

鱼的动画在Game视图中可以发现鱼在游动,这是通过动画来实现的。1.在Project面板选中资源包中的相关动物的图片后托入Hierarchy面板中接着会弹出界面我们将放在Animation文件夹下并命好名,接下来Hierarchy面板中有对应的物体生成且在Scene视图下也有对应动物生成,点击运行,会对动画继续播放。接下来我们在project面板中创建一个命名为Animation的文件夹将接下来创建的动画物体放入其中。鱼的死亡动画与上述的鱼游动动画操作相同,注意的是资源包中没有彩云的死

2021-01-11 16:02:17 1941

原创 unity捕鱼达人3----UI界面的制作以及相关功能的实现

从上述两幅图中我们可以看到主要UI有:开始游戏,继续游戏,倒计时以及金币,等级和名称等等。一:开始界面的实现因为我们要进入游戏界面所以我们肯定要加载游戏界面,所以在Unity中我们有SceneManager.LoadScene这个方法来进行加载。注意:我们进行场景转换时要在File–Build Settings中将场景托入我们可以通过后面的脚标来实现场景的转换。(此时我们的开始界面为0,如果我们要进入游戏界面所以通过上述的方法加上脚标1即可)代码如下:注意:1.上述代码中Applicat..

2021-01-03 16:26:57 1742

原创 unity捕鱼达人2----子弹的获取,发射不同子弹以及子弹的不同伤害的实现和子弹对应的渔网的生成

有反应

2020-12-28 14:38:43 1678

原创 C#——隐藏方法

定义:隐藏方法是指在子类中里面有一个签名和父类相同的方法的时候,就会把父类中的方法隐藏隐藏方法:只是把父类中的方法隐藏了,看不到了,实际上这个方法还是存在的。定义一个People类在定义一个子类Student使其继承自People类两者都有Move()方法。在Program中声明我们可以发现,我们使用子类和父类声明的时候得到的结果不同。注意:隐藏与重写不一样,重写(Override)使原来的方法不见了。关键字:Override:是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无

2020-12-21 15:27:38 2407

原创 unity捕鱼达人----炮台的旋转的实现以及水波纹动画的制作

炮台的旋转炮台的转向由鼠标控制,当我们控制鼠标向右旋转使可以发现,炮台的position为负的所以我们可以以炮台的正方向与鼠标位置的夹角来实现炮台的旋转如图中所示用加粗笔所画的表示MousePos - transform.position的向量。在使用MousePos.X - transform.position.X的大小来判断此时是负的还是正的。在此过程中要使用Vector3.Angle方法功能:static function Angle (from : Vector3, to : Vec

2020-12-20 21:20:00 2170 2

原创 Unity中的Time的使用方法

Unity中的Time的时间体系1.只读 :Time.time:从游戏开始到现在所用的时间,途中会随着游戏的暂停而停止计算。Time.timeSinceLevelLoad:以秒计算到最后的关卡已经加载完的时间(从当前Scene开始到目前为止的时间,也会随着暂停操作而停止)。Time.deltaTime:以秒计算,完成最后一帧的时间(表示从上一帧到当前帧的时间)。Time.SmoothDeltaTime:表示一个平稳的deltaTime,根据前N帧的时间加权平均的值(平滑淡出Time.deltaTi

2020-12-13 16:06:49 4758

原创 愤怒的小鸟实现场景中不同小鸟的功能以及小鸟的各种方法梳理

完成图中四只小鸟的功能,我们可以将基础小鸟(红色)做为父类让其他小鸟的功能继承自父类,来实现对不同小鸟的功能实现。一:红色小鸟导入素材并完成搭建1.在小鸟身上添加Spring Joint 2D组件(作用:尝试通过应用它们之间的力量使两个Rigidbody2D对象设置的距离。请注意与距离二维关节不同、 关节的长度可拉伸和摆动)为图中的绿色实线,并可以拖动左侧的蓝色原点进行位置的选择.注意图中的两个标记圆圈一个距离为蓝色原点到用蓝色圆圈画的绿色线条另一个距离为蓝色圆圈画的绿色线条到小鸟的距离,用此.

2020-12-06 21:53:55 1240

原创 愤怒的小鸟判断场景中道具被小鸟击中后的改变以及小鸟碰撞玩物体后的受伤状态以及使用静态方法对声音的添加

首先要了解当小鸟与非小鸟发生碰撞时是因为力的存在,所以当小鸟碰撞到非小鸟物体时两者都会产生相应的速度,所以便可通过相对速度来检测其碰撞后的状态。一:因此,我们可以定义两个速度,一个为最小速度minSpeed,另一个为最大速度maxSpeed,我们可让当最小速度minSpeed<猪被小鸟碰撞的速度<最大速度maxSpeed,小猪此时的状态为受伤。当猪被小鸟碰撞的速度>最大速度maxSpeed,此时猪直接死亡。二:代码如下1.定义两个速度2.使用碰撞检测,来完成对此时速度的判断.

2020-12-03 19:44:34 384

原创 unity愤怒小鸟功能--发射小鸟以及为小鸟添加碰撞器

导入素材并完成搭建一.在小鸟身上添加Spring Joint 2D组件(作用:尝试通过应用它们之间的力量使两个Rigidbody2D对象设置的距离。请注意与距离二维关节不同、 关节的长度可拉伸和摆动)为图中的绿色实线,并可以拖动左侧的蓝色原点进行位置的选择.注意图中的两个标记圆圈一个距离为蓝色原点到用蓝色圆圈画的绿色线条另一个距离为蓝色圆圈画的绿色线条到小鸟的距离,用此距离为了实现计算出弹簧线的长度,通过代码实现.通过定义一个float类型的maxDis,来获取小鸟到蓝色原点距离(注意:Ve

2020-11-29 23:24:05 742

原创 通过屏幕,鼠标以及主相机来获取2D游戏帽子的运动

实现以下画面原理:定义pingmu,maxwidth,shijie以及帽子的位置hatpos接下实现获取pingmu,maxwidthshijie以及帽子的位置hatposGetComponent().bounds.extents.x的意思是获取帽子的Rerder组件的边界框。通过获取鼠标来控制帽子的左右移动Mathf.Clamp:物体边界控制范围(-maxwidth,maxwidth)。...

2020-11-23 14:05:04 70

原创 transform.Translate与Rigidbody.AddForce与Velocity与MoveToPosition方法的不同

Velocity的默认坐标是世界坐标1.transform.Translate(Vector3SpeedTime.deltaTime,Space.World);//以米每秒为单位,坐标轴,不受力的影响2.Rigidbody.AddForce(Vector3*系数);//受力的影响3.Velocity = (Vector3*Speed) ;//一直都是固定的速度4.MoveToPosition;//类似闪现1,2不可以实现相类似的效果。2,3不可以实现相类似的效果。2,4不可以实现相类似的效果。

2020-11-14 13:35:06 1909 1

原创 Unity中的Animatio动画

1.打开方式2.Animation界面点击Create创建动画,选择对应的文件夹进行保存4.调节此处可以改变其帧数,并且根据所制作动画的需求添加不同组件此处添加的是Sprite将所需制作的动画的图片托人其时间点上,调节其位置,此处该动画为一只鸭子飞过的动画5.关闭Animation的编辑框,将New Animation(文件名)拖入放到duck的Animation的Animation选项中,记得将Play Automatically打上勾,让动画自动运行。最后,运行程序就可以看到立方

2020-11-08 23:07:57 240

原创 单例模式的简单介绍

单例模式的运用第一种:FoodMaker是类名,可以方便从另一个类中获取这个类中的方法。注意的是,一般 _instance 放在要放在Awake()函数中,而不能放在Start()中 。第二种1.通过公有静态方法的方式获取:2.通过公有静态属性的方式获取:在运用中,单例模式一般在数据的保存和读取时用到。...

2020-11-01 22:52:30 62

原创 克隆物的销毁经过时间的销毁以及倒计时

克隆物的销毁经过时间的销毁以及倒计时1.倒计时的运用通过定义GameTime(游戏时间),CountDownTime(倒计时)以及timer(使用者).在定义两个变量M,S通过M来实现分的实现,通过S来完成秒的完成.(此过程要使用string.Format()).##克隆物的间断销毁通过定义T1与T2两个变量,通过他们的时间差来完成对克隆物体的销毁,以及Destroy的方法1.通过Destroy(gameObject.3)//物体在三秒后销毁。2.通过T1和T2:void Start()

2020-10-25 18:04:25 234

空空如也

空空如也

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

TA关注的人

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