Unity2d游戏项目--小狐狸

这篇具有很好参考价值的文章主要介绍了Unity2d游戏项目--小狐狸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、素材处理

  1. 背景

(一)

在文件夹中找到back图片,并在检查器面板中将back图片的每单位像素数设置为16。

unity经典案例小狐狸,unity,Powered by 金山文档

(文件所在地)

unity经典案例小狐狸,unity,Powered by 金山文档

(面板设置)

(二)

将图片拖入到场景中

unity经典案例小狐狸,unity,Powered by 金山文档
  1. 场景素材

(一)

生成矩形的瓦片地图

unity经典案例小狐狸,unity,Powered by 金山文档

(二)

打开平铺调色板

unity经典案例小狐狸,unity,Powered by 金山文档

(三)

新建并命名为map,在原目录新建一个文件夹,用于存放你在这个瓦片地图里所使用的像素。

unity经典案例小狐狸,unity,Powered by 金山文档
unity经典案例小狐狸,unity,Powered by 金山文档

(四)

选中tileset-sliced,并在检查器面板中将tileset-sliced图片的每单位像素数设置为16。

unity经典案例小狐狸,unity,Powered by 金山文档

若没有切割好的tileset,选中tileset,并在检查器中将Sprite模式更改为多个并点击“Sprite Editor”,选择自定义切片,将数值更改为每单位像素数以方便你对每个像素的使用,最后点击“应用”确定。

unity经典案例小狐狸,unity,Powered by 金山文档

(五)

将修改完成的tileset-sliced放到平铺调色板中

unity经典案例小狐狸,unity,Powered by 金山文档

二、图层与角色建立

  1. 绘制场景

使用平铺调色板绘制来搭建场景

unity经典案例小狐狸,unity,Powered by 金山文档
  1. 图层管理

在检查器中,选择排序图层添加标签“Background”“Fontground”.

unity经典案例小狐狸,unity,Powered by 金山文档

越是下面的图层,在场景中的显示就越上。

unity经典案例小狐狸,unity,Powered by 金山文档

处于同一层的显示,则按照图层顺序的大小,越大则越优先显示。这里我们把背景图“back”的排序图层设置为“Background”,图层顺序设置为“0”;绘制的场景“Tilemap”的排序图层设置为“Background”,图层顺序设置为“1”,有需要可再做修改。

unity经典案例小狐狸,unity,Powered by 金山文档

3.人物建立

(一)

在空白处右键新建一个精灵,选择正方形即可。

unity经典案例小狐狸,unity,Powered by 金山文档

(二)

在下列途径中找到player-idle

unity经典案例小狐狸,unity,Powered by 金山文档

记得更改每单位像素值

unity经典案例小狐狸,unity,Powered by 金山文档

(三)

将player-idle-1拖入到sprite的组件Sprite Renderer中的精灵,并修改排序图层为Frontground。然后将sprite重命名为Player,将位置重置,接下来就能在场景中看见小狐狸了。

unity经典案例小狐狸,unity,Powered by 金山文档

(四)

接下来要赋予Player重力以及碰撞,所以我们要给Player添加"Rigidbody 2D"组件和“Box Collider 2D”组件,再给我们绘制的地图“Tilemap”添加碰撞组件“Tilemap Collider 2D”。尝试运行,发现小狐狸收到重力影响掉落在绘制的场景中。

unity经典案例小狐狸,unity,Powered by 金山文档
unity经典案例小狐狸,unity,Powered by 金山文档

三、角色移动

1.Player移动脚本

新建脚本,命名为PlayerController,代码如下,实现对象根据按键来进行左右移动。请在控制面板锁定Player的rigbody2d组件的z轴。

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

public class PlayController : MonoBehaviour
{
    public Rigidbody2D rb;  //获取对象刚体
    public float speed;  //设置对象移动速度

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Movement();
    }

    void Movement()//角色移动
    {
        float horizontalmove;
        horizontalmove = Input.GetAxis("Horizontal");

        if(horizontalmove != 0)
        {
            rb.velocity = new Vector2(horizontalmove * speed, rb.velocity.y);
        }
    }
}

(一)添加跳跃功能和对象转向功能

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

public class PlayController : MonoBehaviour
{
    public Rigidbody2D rb;  //获取对象刚体
    public float speed;  //设置对象移动速度
    public float jumpforce;//设置跳跃获得的纵向力

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        Movement();
    }

    void Movement()//角色移动
    {
        float horizontalmove = Input.GetAxis("Horizontal");
        float facedicetion = Input.GetAxisRaw("Horizontal");

        //如果orizontalmove为1则向左走,-1则向右走
        if (horizontalmove != 0)
        {
            rb.velocity = new Vector2(horizontalmove * speed * Time.deltaTime, rb.velocity.y);
        }

        //如果facedicetion为1则向左转,-1则向右转
        if (facedicetion  != 0)
        {
            transform.localScale = new Vector3(facedicetion, 1, 1);
        }

        //如果按下跳跃键,对象获得纵向力
        if (Input.GetButtonDown("Jump"))
        {
            rb.velocity = new Vector2(rb.velocity.x,jumpforce * Time.deltaTime);
        }
    }
}

四、角色动画

  1. 前置工作

给Player添加组件Animator。

unity经典案例小狐狸,unity,Powered by 金山文档

新建文件夹用于存放动画,并在对应文件夹新建动画控制器(Animator Contorller)。

unity经典案例小狐狸,unity,Powered by 金山文档

把动画控制器“Player”拖到对象“Player”的Animator组件。

unity经典案例小狐狸,unity,Powered by 金山文档

打开动画

unity经典案例小狐狸,unity,Powered by 金山文档

2.站立动画和跑动动画

单击对象“Player”,然后点击动画创建,在如下图所示找到对应的图片,放到Animation中,调整合适即可。

unity经典案例小狐狸,unity,Powered by 金山文档
unity经典案例小狐狸,unity,Powered by 金山文档

3.站立动画与跑动动画的转换

打开如下窗口

unity经典案例小狐狸,unity,Powered by 金山文档

在“run”与“idle”两个动画之间创立过度

unity经典案例小狐狸,unity,Powered by 金山文档

添加一个新参数“running”

unity经典案例小狐狸,unity,Powered by 金山文档

选中“idle”到“run”的过渡关系,进行如下调整:关闭退出时间,过渡持续时间为0,当移动速度大于0.1时,动画过度为“run”。同理设置“run”到“idle”的过渡关系。

unity经典案例小狐狸,unity,Powered by 金山文档
unity经典案例小狐狸,unity,Powered by 金山文档

编辑脚本PlayerController.cs,添加由按键判断动画的功能。文章来源地址https://www.toymoban.com/news/detail-775315.html

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

public class PlayController : MonoBehaviour
{
    public Rigidbody2D rb;  //获取对象刚体
    public Animator anim;  //获取对象动画组件
    public float speed;  //设置对象移动速度
    public float jumpforce;//设置跳跃获得的纵向力

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        Movement();
    }

    void Movement()//角色移动
    {
        float horizontalmove = Input.GetAxis("Horizontal");
        float facedicetion = Input.GetAxisRaw("Horizontal");

        //如果orizontalmove为1则向左走,-1则向右走
        if (horizontalmove != 0)
        {
            rb.velocity = new Vector2(horizontalmove * speed * Time.deltaTime, rb.velocity.y);
            anim.SetFloat("running", Mathf.Abs(horizontalmove));  //按左键时,horizontalmove为负数,动画由“run”转变为“idle”,故此处需要Mathf.Abs转变为绝对值
        }

        //如果facedicetion为1则向左转,-1则向右转
        if (facedicetion  != 0)
        {
            transform.localScale = new Vector3(facedicetion, 1, 1);
        }

        //如果按下跳跃键,对象获得纵向力
        if (Input.GetButtonDown("Jump"))
        {
            rb.velocity = new Vector2(rb.velocity.x,jumpforce * Time.deltaTime);
        }
    }
}

到了这里,关于Unity2d游戏项目--小狐狸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏4(附项目源码)

    本期紧接着上一篇,本期主要内容是实现商店、购买、出售、升级等功能。 新增TurretSettings 配置不同炮塔参数 绘制商店UI 新增TurretCard,渲染商品数据,如果前面有绘制价格文本,还可以渲染价格文本,这里我就偷懒不弄了 挂载脚本,并配置 新增TurretShopManager,商店管理器

    2024年01月21日
    浏览(35)
  • 【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏5(附项目源码,完结)

    本期是本项目的最后一篇,主要内容是配置环境、生成不同敌人、结束重开。 我用的环境素材 https://assetstore.unity.com/packages/2d/environments/2d-sugar-world-asset-pack-urp-256585

    2024年02月05日
    浏览(37)
  • Unity2D绘制游戏地图

    首先,我们选择我们的地图素材(由于笔者在前段时间已经进行切割,最近才开始整理这一段,所以这个是用的老素材,可能有朋友就会觉得切割前后不一致,但是思路是一样的,大家学习思路即可)  接着,我们找到右上角的Slice进行图片切割,我这边简单介绍一下这个切

    2024年02月08日
    浏览(33)
  • unity2D横版游戏教程8-音效

    简单介绍一下unity audio,auido包括三个东西,分别是Aduio Listener,Audio Source,Audio Clips。Audio Listener就相当于耳朵,是用来听声音的,Audio Source就相当于播放器,一个音源,可以播放声音,具体播放什么声音就靠Audio Clips 通常Audio Listener只有一个,默认情况下Audio Listener就在Main

    2024年02月08日
    浏览(26)
  • 百人项目组unity2d游戏手机端发烫帧率低优化从10帧优化到60帧

    项目组排查及优化: 1.http://zh.esotericsoftware.com/forum/Skeleton-Unity-16481 此外,请务必在实际设备上测试 Release 版本的性能,因为调试版本的性能可能会更差,而分析器会使事情变得更糟。 这里一定要去掉开发者模式,否则会掉个10~20帧左右(提升明显) 2.检查正常2d游戏drawcall

    2023年04月23日
    浏览(29)
  • Unity2D 商业游戏案例 - 梦幻西游(第二季 框架设计篇)

    01 Unity2D 回合制游戏案例 - 梦幻西游(第一季 战斗逻辑篇) 01 Unity2D 回合制游戏案例 - 梦幻西游(第一季 战斗逻辑篇)【B站的第一季的部分视频】 02 Unity2D 商业游戏案例 - 梦幻西游(第二季 框架设计篇) 03 Unity2D 商业游戏案例《梦幻西游》(番外篇 - 场景系统) 。。。。。

    2024年02月05日
    浏览(61)
  • Unity2D Sprite尺寸与UI在场景视图和游戏视图显示不一致问题解决方案

    在Unity3D中,当开发2D游戏时,经常会遇到Sprite尺寸与UI在场景视图和游戏视图中显示不一致的问题。这个问题可能导致UI元素变形或者在不同分辨率的设备上显示不正确。本文将为您提供解决这个问题的方法,并附带相应的源代码。 问题分析: Sprite是2D游戏中最常用的图像资

    2024年02月05日
    浏览(35)
  • Unity2D实现子弹追踪目标

    实现子弹追踪目标有很多种方法,首先是一开始就选定了目标的位置,然后按照曲线运动轨迹的方式,持续运动到目标点,不过如果目标移动了,就得将对应的轨迹重新计算一次,另外如果需要设置范围的话更不好做。另一种是锐角追踪,就是在目标进入识别范围后,将子弹

    2024年02月06日
    浏览(37)
  • 【Unity2D】角色动画的切换

    第一种方法是设置一个中间状态,从中间状态向其余各种状态切换,且各状态向其他状态需要设置参数 实现动作转移时右键点击Make Transition即可  实现动画转移需要设置条件 点击一种动画到另一种动画的线 ,然后点击加号添加Condition 比如机器人从向左走切换到向右走的条件

    2024年02月15日
    浏览(37)
  • Unity2D学习笔记-Tilemap

    tilemap算是接触了几次,但是无论是看视频还是看文章都一知半解,这次把编辑地图的开始步骤搞清楚。 首先要知道tilemap是做什么的。 这里提到的Tilemap其实不止是Tilemap:Tilemap本身是地图编辑器(虽然我更倾向于理解为“场景”,不过编辑地图才是核心)。之前学的印象是,

    2023年04月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包