Chinar 堅持將簡單的生活方式,帶給世人! (擁有更好的閱讀體驗 —— 高分辨率用戶請根據需求調整網頁縮放比例) |
助力快速完成 Animator 動畫的添加與控制 為新手節省寶貴的時間,避免采坑! |
Chinar 教程效果:
1
Animator —— 動畫
Unity 中為我們提供了而全面的動畫設計解決方案,用來完成游戲對象的動態效果的控制和創建
我們想要一個人物模型動起來,非常簡單
只需要在人物的游戲對象上添加 Animator 組件
然后創建一個 Animator Controller 來控制對應的游戲對象的動畫 Animator 即可
2
Animator Controller —— 動畫控制器面板
選中 Animator Controller文件,點擊 Open 即可打開控制器面板
新創建一個 Animator Controller 默認是沒有任何狀態的
需要自己創建空狀態,並進行相應設置
3
Specifies Animation —— 指定動畫
創建一個狀態后,我們需要給該狀態改名(為了區分狀態),並指定一個動作 Motion
這里我創建的是 站立,所以就需要找到對應的 Idel 動畫,指定給 Motion
相同流程創建跑步動作:
4
Status Swithing —— 狀態切換
由於喪屍這個游戲對象,具備跑和站立 2 個狀態/動作 Motion
我們需要的是點擊鼠標,它就開始移動,保持跑起來的狀態
走到目的地,它就停下,保持站立狀態
所以這里 站立——跑,狀態是需要切換的,如上圖,我們可以簡單的建立連接
那么我們需要添加一個 bool 參數,並設置對應條件,來使2個狀態可以進行切換
添加完成后,我們就可以通過代碼,來控制人物的站立和跑 2個狀態了
具體流程:
5
Code Control —— 通過代碼控制狀態
完成上邊所有設置,即可通過代碼控制 動畫狀態的切換
調用 Animator 中的函數,通過設置 bool 值,即可改變 游戲對象的 動畫狀態
animator.SetBool("ZombieRun", true)
讓僵屍切換為 跑 狀態
animator.SetBool("ZombieRun", false)
讓僵屍切換為 站立 狀態
Animator.StringToHash("ZombieRun")
可以將字符參數轉為 ID(int 值) ,同樣用來控制狀態
using UnityEngine;
using UnityEngine.AI;
/// <summary>
/// <para>作用:控制喪屍的移動</para>
/// <para>作者:Chinar</para>
/// <para>創建日期:2018-08-05</para>
/// </summary>
public class ZombieMove : MonoBehaviour
{
private NavMeshAgent navMeshAgent;
private Animator animator;
/// <summary>
/// 初始化函數
/// </summary>
void Start()
{
navMeshAgent = GetComponent<NavMeshAgent>(); //獲取自身AI組件
animator = GetComponent<Animator>(); //動畫組件
}
/// <summary>
/// 每幀刷新
/// </summary>
void Update()
{
if (Input.GetMouseButton(1)) //右鍵
{
object ray = Camera.main.ScreenPointToRay(Input.mousePosition); //屏幕坐標轉射線
RaycastHit hit; //射線投射碰撞
bool isHit = Physics.Raycast((Ray) ray, out hit); //射線投射(射線,結構體信息) ;返回bool 值 是否檢測到碰撞
if (isHit)
{
print("坐標:" + hit.point); //射線與物體碰撞點
navMeshAgent.SetDestination(hit.point); //AI組件,設置目的地/終點
animator.SetBool("ZombieRun", true); //讓僵屍跑起來
}
}
if (navMeshAgent.remainingDistance < 0.5f) //當前位置 與終點 的 剩余距離<0.5f
{
animator.SetBool("ZombieRun", false); //讓僵屍站立
}
}
}
動畫效果:
支持
May Be —— 搞開發,總有一天要做的事!
Chinar 提供一站式教程,閉眼式創建! 為新手節省寶貴時間,避免采坑! |
先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)
1 —— 雲服務器超全購買流程 (新手必備!)
2 —— 阿里ECS雲服務器自定義配置 - 購買教程(新手必備!)
3—— Windows 服務器配置、運行、建站一條龍 !
4 —— Linux 服務器配置、運行、建站一條龍 !

技術交流群:806091680 ! Chinar 歡迎你的加入
本博客為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究
對於需要復制、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯系,留言,Email: ichinar@icloud.com
對於經本博主明確授權和許可使用文章及內容的,使用時請注明文章或內容出處並注明網址