2DAnimation与换装系统-IK,骨骼动画,换装

2D反向动力学IK

在为物体创建骨骼后,进行以下步骤创建IK:

  1. 为游戏物体添加IK Manager 2D组件,通常添加在物体的根节点上。

  2. 点击+号创建一个IK Solver,之后在Hierarchy会生成一个Solver2D物体

    • Chain CCD:循环坐标下降求解IK
    • Chain FABRIK:摇摆接近求解IK
    • Limb:手臂,标准的双骨骼求解器
  3. 创建Effector和Target

    • 选择最后的骨骼,创建一个空物体(通常创建为最后骨骼的子物体)标识骨骼末端
    • 将空物体拖拽到IK Solver的Target上

骨骼动画

在Animation页面使用录制功能创建骨骼动画。

换装系统

使用Sprite Library创建换装系统:

  1. 为角色添加Sprite Library组件

  2. 在资源文件夹创建Sprite Library Asset,创建category,创建对应的名称-贴图

  3. 将Sprite Library Asset拖拽进入Sprite Library中

  4. 在要进行换装的物体中添加Sprite Resolver。

  5. 使用代码控制贴图

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.U2D.Animation;

    public class changeHat : MonoBehaviour
    {
    //SpriteResolver
    private SpriteResolver hatChangeSys;

    void Start()
    {
    //获取要换装的物体的SpriteResolver
    hatChangeSys = transform.Find("hat").GetComponent<SpriteResolver>();
    }

    void Update()
    {
    changingHat();
    }

    void changingHat()
    {
    //根据按键控制换装
    if(Input.GetKey(KeyCode.Alpha1))
    {
    hatChangeSys.SetCategoryAndLabel("hat","common");
    }
    else if (Input.GetKey(KeyCode.Alpha2))
    {
    hatChangeSys.SetCategoryAndLabel("hat", "christmas");
    }
    else if (Input.GetKey(KeyCode.Alpha3))
    {
    hatChangeSys.SetCategoryAndLabel("hat", "cow");
    }
    else if (Input.GetKey(KeyCode.Alpha4))
    {
    hatChangeSys.SetCategoryAndLabel("hat", "block");
    }
    }
    }