2D横版游戏Demo试做流程(Unity3D+Visual Studio C#)

2D横版游戏Demo试做流程(Unity3D+Visual Studio C#)目录UI界面设置游戏规则制定Player角色(玩家可控制角色相关)(创建playerC#文件)怪物类(各种怪物相关)(创建MonsterC#文件)奖励物体类(金币,无敌,攻击等物品)界面跳转发布目录UI界面设置通过各种途径获得相关UI元素,在Unity中左侧栏中利用2D Project中元素完成场景。设置好各个物体所需的Box Collider 2d (碰撞)和 rigidBody 2d(物理属性)。设置好不同物体的类型(
摘要由CSDN通过智能技术生成

目录

UI界面设置

通过各种途径获得相关UI元素,在Unity中左侧栏中利用2D Project中元素完成场景。设置好各个物体所需的Box Collider 2d (碰撞)和 rigidBody 2d(物理属性)。设置好不同物体的类型(tag)(例如角色、金币、怪物、子弹等)后续碰撞检测需要使用。
主场景

进入游戏界面
在这里插入图片描述
失败和成功界面
在这里插入图片描述
在这里插入图片描述
其中还包括设置游戏内怪物和角色动画。角色为UNITY社区中下载的包,已包含动画。怪物使用关键帧动画,创建动画后,在ctri+6呼出的时间轴中添加关键帧。

游戏规则制定

在项目下新建Scriipt(代码)文件夹,创建GameManager的C#文件。在该文件中制定游戏大体规则。

使用单例模式(饿汉子单例模式)创建各种变量。

public class GameManage : MonoBehaviour
{
   
    
    //单例模式(饿汉子单例模式)

    public static GameManage Index; //静态变量不能被实例化
    GameManage()
    {
   
        Index = this;
    }
    
    //工厂模式(内部所有组成成员的变量全部都是静态变量)

    [Header("金币值")]
    public int gold = 0;
    [Header("当前关卡")]
    public int Level = 1;

    /// <summary>
    /// 所有的音频管理
    /// </summary>
    public AudioSource[] allAudio;

    /// <summary>
    /// 地面
    /// </summary>
    public GameObject Floor;

    /// <summary>
    /// 金币显示
    /// </summary>
    public Text Gold;

    /// <summary>
    /// 剩余时间显示
    /// </summary>
    public Text TimeShow;


    float times = 300;

    /// <summary>
    /// 主角速度
    /// </summary>
    public float PlayerSpeed = 0.03f;
    
    /// <summary>
    /// 主角
    /// </summary>
    public GameObject KyaRa;

    /// <summary>
    /// 主角状态 0为无防护
    /// </summary>
    public int PlayerState = 0;

    /// <summary>
    /// 显示无敌图标
    /// </summary>
    public GameObject PlayerIsSuper;

    /// <summary>
    /// 显示主角武器
    /// </summary>
    public GameObject PlayerIsAttact;

    // Start is called before the first frame update
    void Start()
    {
   
        PlayerIsSuper.SetActive(false);

        PlayerIsSuper.SetActive(false);
    }

    // Update is called once per frame
    void Update()
    {
   
        times -= Time.deltaTime;
        TimeShow.text = times.ToString();
    }
}

Player角色(玩家可控制角色相关)(创建playerC#文件)

总体分为几种功能
1、角色的各种状态(创建各种变量标识主角状态)

//动画控制
    public Animator anime;
    //物理属性
    public Rigidbody2D rigi;
    //检测是否在地面上(false为不在地面上)
    bool IsOnFloor = false;
    //当前人物位置
    float PlayerPrint;
    //是否人物移动
    bool isPlayerRun = true;
    /// <summary>
    /// 武器
    /// </summary>
    public GameObject Attact;

2、角色控制相关(通过键盘按键WASD移动,J攻击操控角色)移动主要使用transform方法改变主角位置。在主角行走至屏幕中间时,改为地图进行相对向后运动,主角位置不变。

void run()
    {
   
        //点击D键向右移动
        if (Input.GetKey(KeyCode.D))
        {
   
            if (isPlayerRun)
            {
   
                //控制跑动速度和位置
                transform.Translate(GameManage.Index.PlayerSpeed* - 1, 0, 0);
            }
            else
            {
   
                GameManage.Index.Floor.transform.Translate(GameManage.Index.PlayerSpeed * -1, 0, 0);
            }
            //控制人物面朝方向为向右
            transform.eulerAngles = new Vector3(0
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值