iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0
自我挑戰組

從零開始用Unity設計遊戲系列 第 15

目標:加入動畫(走動2)

  • 分享至 

  • xImage
  •  

今天是挑戰的第15天,經過了一半的日程了~~!!

今天我們要接續昨天未完成的地方,也就是用程式來控制兩個動畫的切換,首先要了解Animator的使用也就是加入一些狀態~

Step1:定義參數

這是使用的是Int參數,而其中必較特別的是Trigger,Trigger比較像切換的感覺,但他就只能切一次,要用Trigger比較適合單次的動作。

https://ithelp.ithome.com.tw/upload/images/20220928/20151024rMlJRwTQiV.png

Step2:設定Transition條件

這裡是昨天連線(Make Transition)完成後才能繼續設定,這條idle到walk的線設定的是(Equals)=1 idel英文拼錯了!!! ,而另一條從walk回去idle則是設定為0。

https://ithelp.ithome.com.tw/upload/images/20220928/20151024s6D2o1KhdW.png

Step3:加入程式

先用把player.SetInteger("Status",1);的狀態給予要動作的按鍵。接著後面要加入Bool函數和條件式(if,else)來避免重複賦予狀態的情況發生,最後才能成功切換。

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

public class moving : MonoBehaviour
    {
    public Rigidbody2D rigid2D;
    public Animator player;
 
    void Start()
    {
       
    }
    void Update()
    {
        bool walk = false;
        if (Input.GetKeyDown("space"))
        {
            rigid2D.AddForce(new Vector2(0, 26),ForceMode2D.Impulse);
            print("jump");

        }
        if (Input.GetKey("left"))
        {
            player.SetInteger("Status",1);
            walk = true;
            rigid2D.AddForce(new Vector2(-3, 0), ForceMode2D.Force);
            transform.localScale = new Vector3(-10, 10, 10); 
            print("moveleft");

        }
        if (Input.GetKey("right"))
        {
            player.SetInteger("Status", 1);
            walk = true;
            rigid2D.AddForce(new Vector2(3, 0), ForceMode2D.Force);
            print("moveright");
            transform.localScale = new Vector3(10, 10, 10);

        }
        if (walk)
        {
            if (player.GetInteger("Status") == 0)
                player.SetInteger("Status", 1);
        }
        else
        {
            if (player.GetInteger("Status") == 1)
                player.SetInteger("Status", 0);
        }


    }
    }

參考資料:

1.https://www.youtube.com/watch?v=aIOYDtJnJI0&t=692s&ab_channel=%E9%98%BF%E7%A9%BA%E7%9A%84%E9%81%8A%E6%88%B2%E9%83%A8%E5%B1%8B
2.https://ithelp.ithome.com.tw/articles/10235140?sc=iThelpR


上一篇
目標:加入動畫(走動)
下一篇
解決角色跑出攝影機的問題
系列文
從零開始用Unity設計遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言