三、Unity2D游戏制作——角色制作

1.导入角色图片并切片

新建文件夹player-将角色图片拖动至该文件夹内-选中图片文件后点击检查器内sprite editor按钮打开编辑器-点击切片按钮-切片方式选择自动-点击应用。
在这里插入图片描述

2.创建行走动画

分别选中所有面向前方后方等四个方向切片拖动至层级对话框内,保存文件至player子文件夹walk中,命名为Walk_U等四个文件,完成后删除层级框内刚新建的四个动画对象文件及walk文件夹内四个动画器文件。
这里我的窗口布局改为了默认布局
在这里插入图片描述
在这里插入图片描述

3.创建静止动画

打开walk文件夹-复制并粘贴Walk_D.admin等四个文件-于unity项目对话框内一次将其重命名为Idle_U等。
在这里插入图片描述
在这里插入图片描述

双击Walk_D打开动画编辑器-选中第一张动画复制-点击Idle_D切换到Idle_D动画粘贴,将另外三个也做同样处理。
在这里插入图片描述

4.建立角色静止动画规则

选中层级内Player对象-拖动项目对话框内Walk_D文件至检查器对话框内添加组件处以创建player动画器。
在这里插入图片描述

双击player打开动画器-删除动画器内已存在的Walk_D-右击动画器窗口空白处选择创建状态-新混合树并重命名为Idle,添加两个float类型参数Input_x、Input_y,一个bool类型参数iswalking。
在这里插入图片描述

双击打开Idle,检查器内混合类型修改为2D Freeform Cartesian,添加四个运动域-将参数改为Input_x、Input_y-将空运动换为Idle_D、Idle_U等,参数如图。
在这里插入图片描述

对此我的理解为:
假设player所在位置设为原点,当player面向Pos点方向时调用前面的motion,例如player往上时,也就是往Y轴正方向,那么pos即为(0,+)可以为(0,1)(0,0.1)(0,2)等,需要调用的动画为Idle_U。

5.建立角色移动动画规则

复制粘贴一份Idle更名为walking,将motion改为对应的walking动画。
在这里插入图片描述

6.建立过度条件

右键动画器内Idle创建过渡-取消退出时间-添加条件iswalking-值设为true,同理建立iswalking到idle过渡,设置iswalking为false。
在这里插入图片描述

7.创建移动控制脚本

选中层级内player对象,点击添加组件,选择New script
在这里插入图片描述

打开新建的脚本文件,编辑代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BehaviourScript : MonoBehaviour
{


    Rigidbody2D rbody;    //定义变量
    Animator anim;
    // Start is called before the first frame update
    void Start()
    {
        rbody = GetComponent<Rigidbody2D>();      //初始化
        anim = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
        Vector2 vector = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));    //定义向量,获取水平竖直方向值  使用GetAxisRaw可以兼容方向键游戏手柄等。
        if (vector!=Vector2.zero)             //判断是否在移动
        {
            anim.SetBool("iswalking", true);             
            anim.SetFloat("Input_x", vector.x);
            anim.SetFloat("Input_y", vector.y);
        }
        else
            anim.SetBool("iswalking", false);
        rbody.MovePosition(rbody.position + vector * Time.deltaTime * 100);      //移动player
    }
}

注意:
当脚本文件报无法加载关联的脚本时有两种情况,判断方法新建脚本文件不修改文件名若仍然报错则为第二种:1.类名与文件名不一致,解决方案修改类名或文件名。2.环境问题,解决方案删除项目窗口内SuperTiled2Unity文件夹并重新安装,若仍未解决则重装unity。

8.绑定摄像机

新建c#脚本文件,绑定到Main Camera,代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraAuto : MonoBehaviour
{

    public Transform targer;              //定义变量             
    public float m_moveSpeed = 0.03f;
    Camera mycamera;

    // Start is called before the first frame update
    void Start()
    {
        mycamera = GetComponent<Camera>();       //初始化
    }

    // Update is called once per frame
    void Update()
    {
       //mycamera.orthographicSize = (Screen.height / 0.6f) / 4f;      //设置摄像机范围
       if(targer)
        {
            transform.position = Vector3.Lerp(transform.position, targer.position, m_moveSpeed);       //移动摄像机
        }
    }
}

保存后选中Main Camera,将Player拖动到Targer即可。
在这里插入图片描述
注意:
脚本文件中的public变量会显示在unity脚本组件下拉菜单中,如上图中的targer、movespeed。

  • 10
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Unity3D格斗游戏源码是一种让开发者能够开发自己的格斗游戏的一种资源,而“仿最终幻想”是模仿最终幻想系列游戏来设计和开发的游戏。这种源码提供了许多基本的游戏元素和功能,开发者可以根据自己的需求来创建自己想要的游戏。 在Unity3D格斗游戏源码中,主要包含了以下几个方面的内容: 1. 角色控制:开发者可以通过源码来实现角色的移动、攻击、防御等基本动作。游戏中的角色可以使用键盘、鼠标或者手柄进行操控,使得玩家能够与游戏世界进行交互。 2. 动画系统:为了增强游戏的流畅性和真实感,该源码还提供了动画系统。开发者可以根据需要创建角色的各种动画,例如攻击动画、受伤动画和死亡动画等,使得游戏体验更加逼真。 3. AI系统:为了让游戏增加一定的挑战性,该源码还提供了AI系统。开发者可以通过代码设置敌方角色的行为和策略,使得游戏中的敌人具有一定的智能和反应能力。 4. 特效和音效:为了提升游戏的视听效果,该源码还包括了一些特效和音效资源。开发者可以根据自己的需要添加各种特效和音效,增强游戏的氛围和乐趣。 5. 可定制性:该源码还提供了一些可配置的参数和选项,开发者可以根据自己的需求来调整游戏的各种设置,包括角色属性、技能系统和游戏难度等,以便创造出不同的游戏体验。 总之,Unity3D格斗游戏源码可以帮助开发者快速搭建一个仿照最终幻想系列的格斗游戏。通过使用该源码,开发者可以省下许多开发时间和精力,同时也能够在这个基础上进行二次开发,实现自己的创意和想法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值