【unity】学习制作类银河恶魔城游戏-1-

vs连接unity

创建对象,刚体,碰撞体积,材料

创建一个正方体当作平台,创建一个球

给球加入实体/刚体,使其能够随重力下落

给球加入圆形碰撞体(collider)

给平台加入碰撞体

更改球的下落速度(gravity n.重力)

启动!!发现球落在了平台上

创建物理材料,修改摩檫力和弹力



给球应用该材料

给球添加线性阻力

启动!!球在平台上弹起

编写代码

创建一个c#脚本


加入到球上,双击打开

start 相当于初始化,只会在游戏开始时运行一次,update 是每帧都更新运行一次

添加一个控制台

输入上述代码,我们可以在控制台看到他们(!!!输入完代码记得CTRL S 保存才会被执行!!!)

start只调用了一次 update一直在调用

Debug.log("") 调试功能检查bug时使用,会在控制台输出

按下空格输出jump


Input.Getkey 按住才会执行
Input.Getkeydown 按下才会执行
Input.Getkeyup 抬起才会执行

另一种方法

button在下图中设置(猜测作用是方便改键位??)
在该窗口中unity预制了常见的按钮和功能方便调用

球的移动

private 和 public 变量
公开变量可以在检查器中显示
私有变量不能被其他脚本修改,保证安全性

定义xInput用于X轴上的输入

定义一个刚体rb并安装给球,用来操控球

GetAxisRaw方法,在Input类中,用于获取指定输入轴上的原始输入值
Input.GetAxisRaw("Horizontal"),用于获取玩家水平方向输入
rb.velocity = new Vector2(xInput, rb.velocity.y);用于控制一个2D物体在水平方向上的移动,同时保持其在垂直方向上的速度不变,new Vector2是新的 Vector2 对象,用于设置物体的新速度。Vector2 是一个二维向量,包含x和y两个分量。

运行下列代码并用ad或方向键操控球

球移动太慢了,创建一个速度变量

并应用到代码中

在控制台中修改到舒服的速度

球的跳跃

和球的移动同理

很多的变量其实并不能public,比如一个游戏人物的移动速度不能轻易改变。但是private后我们不能在控制台上轻易改变数值不方便调试,因此我们需要[SerializeField]序列化操作

posted @ 2024-12-24 13:40  plusu  阅读(187)  评论(0)    收藏  举报