Unity关于2D角色序列帧8个方向动作资源优化

前提:这里使用的是Unity内置的Animator制作2D序列帧动画,不介绍制作过程。


在用Unity制作2D游戏时,如果动画是用图片序列帧来做,那么有的游戏一个角色动作通常会有八个方向,所以一套动作的图片资源是非常多的。

有些角色动作如向左走和向右走的图片是左右镜像对称的,因此可以只用向左走反转Y轴坐标180度来表示向右走的动作。

如此算来,可以省去8个方向中的3个有镜像对称的图片资源。也就是只用5个方向,其它3个通过反转可以得到,又省了不少资源,快哉快哉!
具体实现方式:

我有一个官吏角色,左右走2个方向的套图,也可以根据此来扩展到8个方向的。

首先是使用全套方向图制作的动画(使用全部方向图片资源)
图片图集如下:

这里写图片描述

代码:

using UnityEngine;
using System.Collections;

public class RunTest : MonoBehaviour {


    private Animator animator;


    void Awake() {
        animator = transform.GetComponent<Animator>();
    }

    void Update() {

        if (animator == null)
            return;

        //按下键盘A键向左走
        if (Input.GetKeyDown(KeyCode.A)) {
            this.RunRightDir(false);
        }
        //按下键盘D键向右走
        if (Input.GetKeyDown(KeyCode.D)) {
            this.RunRightDir(true);
        }
    }

    private void RunRightDir(bool rightBool) {
        animator.SetBool("right", rightBool);
        animator.SetBool("left", !rightBool);
    }
}

挂上脚本后,按“A”“D”键可实现左右走动动作。

这里写图片描述

接下来使用右方向来反转模拟向左走。实现方式:

图集资源:
这里写图片描述

代码:

using UnityEngine;
using System.Collections;

public class RunTest : MonoBehaviour {


    private Animator animator;


    void Awake() {
        animator = transform.GetComponent<Animator>();
    }

    void Update() {

        if (animator == null)
            return;

        //按下键盘A键向左走
        if (Input.GetKeyDown(KeyCode.A)) {
            //this.RunRightDir(false);
            this.RunRightDir01(false);
        }
        //按下键盘D键向右走
        if (Input.GetKeyDown(KeyCode.D)) {
            //this.RunRightDir(true);
            this.RunRightDir01(true);
        }
    }

    private void RunRightDir(bool rightBool) {
        animator.SetBool("right", rightBool);
        animator.SetBool("left", !rightBool);
    }

    private void RunRightDir01(bool rightBool) {
        if (rightBool)
        {
            transform.rotation = Quaternion.Euler(0,0,0);
        }
        else {
            transform.rotation = Quaternion.Euler(0, -180, 0);
        }
    }
}

只是原来的代码加多了一个RunRightDir01(bool rightBool)方法,达到的效果一样,图片资源省了一半!快哉!

这里写图片描述

### 回答1: 人物序列帧动画素材在CSDN上可以说是非常丰富的。CSDN作为一个专业的IT技术社区和资源平台,汇聚了大量开发者和设计师,其中就包括了许多优秀的动画设计师。 在CSDN上搜索人物序列帧动画素材,你可以找到大量的资源供你选择。这些素材涵盖了各种类型的人物,包括卡通、实景、科幻等等,你可以根据自己的需求进行筛选。这些素材不仅涵盖了人物的不同姿势和表情,还包括了各种动画效果,如行走、跑动、跳跃等。无论你是在制作游戏、动画片,还是在设计手机APP或者网站,都能在CSDN上找到适合的素材。 同时,CSDN上还有许多优秀的动画设计师会分享自己制作的人物序列帧动画素材,这些素材经过精心设计和制作,质量较高且具有独特性。你可以通过他们的分享来获取灵感和参考,学习他们的技巧和经验。 总之,CSDN是一个非常适合寻找人物序列帧动画素材的平台。在这里你不仅能够找到丰富多样的素材供你选择,还可以学习到其他设计师的经验与技巧,提升自己的设计水平。无论你是初学者还是专业人士,CSDN都能满足你的需求。 ### 回答2: 人物序列帧动画素材是指一系列连续的静止图像,通过快速播放形成动画效果。在csdn(中国软件开发网)上,可以找到各种类型的人物序列帧动画素材。 在人物序列帧动画中,动画设计师可以使用这些素材来创建各种生动的动画效果。这些素材通常包括不同角度和动作人物图像,如行走、奔跑、跳跃等。设计师可以根据需要选择合适的素材,并按照时间顺序排列,形成连贯的动画。 通过csdn获取人物序列帧动画素材具有以下优势: 1. 多样性:CSDN上的素材库拥有丰富多样的人物序列帧动画素材,包括不同风格、不同年龄、不同性别的人物素材,能够满足各种类型动画的需求。 2. 可定制性:素材库中的人物序列帧动画可以被设计师自由修改和定制,可以根据动画的需求进行细微调整,如改变人物的表情、姿势、颜色等。 3. 省时省力:通过csdn获取人物序列帧动画素材,设计师无需从零开始设计人物动画,可以节省大量的时间和精力,专注于动画的创意和细节。 总之,人物序列帧动画素材是csdn提供给设计师和开发者的有价值资源,通过这些素材的运用,可以为动画注入生命力,实现更加精彩的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值