2016年3月25日 星期五

【Unity】Animator2D動畫切換 - 待機>行走>跑步

成品(不含按鍵D):https://dl.dropboxusercontent.com/u/90403802/AnimatorRun/AnimatorRun.html
這次來提animator動畫切換,要做的是人物待機、行走和跑步動畫切換,動畫使用UnityChan的2D圖製作,在以下的連結可以找到:
http://unity-chan.com/
Unity animator sprite
Unity animator sprite
將下載好的package匯入專案中,找好一組待機、行走和跑步的圖片。

1.
Unity animator sprite
2.
Unity animator sprite
3.
Unity animator sprite
4.
Unity animator sprite
5.
Unity animator sprite
6.
Unity animator sprite
7.
Unity animator sprite
8.
Unity animator sprite
9.
Unity animator sprite
10.
Unity animator sprite
接著是控制腳本的內容:
using UnityEngine;
public class AnimatorControl : MonoBehaviour {
    private Animator animator;
    private float speed;
    public float minSpeed;
    public float maxSpeed;
    public float addSpeed;
    void Start () {
        animator = GetComponent<Animator>();
        speed = 0;
    }
 void Update () {
        if (Input.GetKey(KeyCode.D))
            speed = Mathf.MoveTowards(speed, maxSpeed, addSpeed * Time.deltaTime);
        else
            speed = Mathf.MoveTowards(speed, minSpeed, addSpeed * Time.deltaTime * 2);
        animator.SetFloat("speed", speed);
    }
}
腳本需要的變數;animator用來設定Sprite上Animator的條件變數,目前速度speed,速度最小值minSpeed和最大值maxSpeed,速度變化量addSpeed。
當按下按鍵時,將speed的值變化至最大值maxSpeed,否則的話將speed的值變化至最小值minSpeed。
由於Update的跟新速度是隨著硬體效能變化,變化量addSpeed需要乘上Time.deltaTime,讓每個frame的變化量相同。
最後將目前速度speed帶入animator下的條件變數。
Unity animator sprite
素材:
Unity Technologies Japan/UCL
IconArchive

沒有留言:

張貼留言

【自製小遊戲】水平思考猜謎(海龜湯)

遊戲連結 海龜湯的玩法是由出題者提出一個難以理解的事件,參與猜題者可以提出任何問題以試圖縮小範圍並找出事件背後真正的原因。但出題者僅能以「是」、「不是」或「沒有關係」來回答問題。 本遊戲蒐集各種論壇、平台的42個題目,提供給想玩海龜湯卻愁找不到題目的你們。 ...