这个游戏比较非常适合新手做入门实践的小游戏,它的制作分为三个部分:
1——场景的搭建
游戏场景的搭建,可借助V键进行快速对齐,因为这是一款跑酷游戏,故游戏的难度也应从简单到逐渐困难,这就需要各位萌新发挥自己的想象能力有创意的搭建了。
2——主角的控制和动画
任何的问题,我们都应该简单化,将其拆分,做主角的控制时,我们应该一个个功能实现,首先是人物的自动奔跑,这里笔者用的是刚体的速度去实现的,其次就是人物的跳跃功能,跳跃与奔跑类似,只需在Y轴上添加速度即可,但需要限制人物的跳跃次数,总不可能让人物可以无限跳。
Vector3 vel = cha.velocity;
vel.z = speed;
if(jump&&jumpCount<2)
{
vel.y = jumpSpeed;
jumpCount++;
}
cha.velocity = vel;
这个游戏最关键的还是人物的变色功能,这里笔者是通过关卡的标签与人物的颜色来识别的
enum PlayerColor
{
red,
green,
gray
}
public void ChangeColor()
{
if(color==PlayerColor.red)
{
rnd.material.color = Color.green;
color = PlayerColor.green;
}
else if (color == PlayerColor.green)
{
rnd.material.color = Color.gray;
color = PlayerColor.gray;
}
else if (color == PlayerColor.gray)
{
rnd.material.color = Color.red;
color = PlayerColor.red;
}
}
人物的动画,需要用到动画状态机:
首先,给主角添加一个动画状态机的组件,再创建一个动画控制器
我们再根据所拥有的素材,将动画拖到动画状态机中,点击右键,选择Make Transform,就能获得如果所示的箭头号,这是动画转移的路径,有了路径我们还需添加条件,这时我们需要添加参数
点击Parameters下面的加号,就可添加不同类型的条件,添加完条件后,我们还需在脚本中去实现,根据不同类型的参数,我们用不同类型的Set...函数
anim.SetBool("IsGround", isGround);
anim.SetTrigger("Change");
3——游戏场景优化
游戏场景的优化就涉及到UI界面的设置,在Text中,我们通常选择居中和Overflow模式
其次就是创建按钮Button,
在On Click中我们选择下面的加号,可让按钮,调用脚本中的函数,这里笔者做的是游戏切换按钮,用的是SceneManager.LoadScene函数。
using UnityEngine.SceneManagement;
public void OnButton()
{
SceneManager.LoadScene(1);
}
游戏场景的设置可在Build Settings中设置
将相应的场景拖入其中,就可获得排序不同的场景
优化这里博主做的是天空盒的改变
选择第一个Skybox Material,就可改变天空盒,如果想更简单,可直接改变摄像机的背景颜色,
在Background中改变。
当然还有些其他问题,比如人物跌倒的问题,可在刚体组件中进行约束
勾选Freeze Rotation中的几个方向即可。
人物的卡墙问题,可通过添加物理材质解决
将相应的摩擦力,弹力等设置到最小即可。
博客制作不易,可能还有很多没说清楚,还请谅解,如有需要,可私聊博主,乐意解答。