打算使用Unity制作经典的横版冒险小游戏,参考最近打发时间玩的小游戏希望之星莱丽莎,记录一下自己的一些准备思路。

Unity实现冒险小游戏制作搭建研究_小游戏


游戏素材准备


UI:开始游戏按钮,记录分数的Text,记录生命值Text(不使用参考小游戏的ui,直接用文字表示),闯关胜利提示Plane,死亡游戏结束提示Plane,开始Canvas、结束Canvas、游戏数据展示Canvas。

贴图:角色、背景贴图,冒险地图前景、三种颜色的魔法石、魔法棒、小怪。

动画:

1、主角idle、attack 、jump、move、showMagic、die。

2、魔法石:shine。

4、魔法棒:idle、showMagic。

游戏操作逻辑思考

1、背景贴图瓷砖式地图,画板Tile palette绘制,担心可能卡缝隙。

Unity实现冒险小游戏制作搭建研究_Unity_02

2、角色移动脚本PlayerControler,获取键盘事件响应轴的数据,Animation与Animator制作idle、attack 、jump、move、showMagic、die动画,脚本和状态机播放动画。

3、生命值:UI记录的Text文本脚本LifeHp,触碰到小怪减少HP。

4、魔法石:脚本Rewards,角色触碰到魔法石就数值+1。

5、小怪:脚本Monster,一定距离内可以被检测到主角靠近就开始移动靠近。参考以前的代码实现记录如下。

void Update()
    {
        EnemyMovement();
    }
    // 小怪的移动
    void EnemyMovement()
    {
        if (faceRight)
        {
            // 朝右移动
            rb.velocity = new Vector2(speed , rb.velocity.y);
            //Debug.Log(transform.position.x + "  "+ rightX);
            // 到达边界值
            if(transform.position.x > rightX)
            {   
                // 改变朝向 
                transform.localScale = new Vector3(-1,1,1);
                faceRight = false;
            }
        }
        else
        {
            // 朝左移动
            rb.velocity = new Vector2(-speed , rb.velocity.y);
            // 到达边界值
            if (transform.position.x < lef)
            {
                transform.localScale = new Vector3(1, 1, 1);
                faceRight = true;
            }
        }
    }


目前的思路暂且记录如此,参考实现的小游戏地址:http://www.8799.com/l4/90097/,方便自己查看原游戏的设计和玩法。