可通過BlendShape來實現眨眼動畫,效果如下:
轉載請注明出處:http://www.cnblogs.com/jietian331/p/7054673.html
代碼如下:

using UnityEngine; /// <summary> /// 眨眼類 /// </summary> public class EyeBlink { static float[] Weights = new float[] { 100, 75, 50, 25, 0 }; // 100時眼睛全閉,0時眼睛全開 public SkinnedMeshRenderer Face; bool m_enable = true; bool m_blinking; float m_timer; int m_index; public void Update() { if (!Face || !Enable) return; m_timer -= Time.deltaTime; if (m_blinking) { if (m_timer < 0) { m_timer = 0.05f; // 每隔0.05s設置一次眨眼動畫,可調節眨眼的快慢 m_index++; if (m_index < Weights.Length) SetShape(m_index); // 設置眨眼動畫,從閉到開 else { m_blinking = false; // 眨眼結束 m_timer = Random.Range(3, 5); // 設置眼睛保持睜開的時間 } } } else { if (m_timer < 0) ToBlink(); // 開始眨眼 } } void ToBlink() { m_blinking = true; m_timer = 0; m_index = -1; } void SetShape(int index) { Face.SetBlendShapeWeight(8, Weights[index]); } public bool Enable { get { return m_enable; } set { if (m_enable != value) { m_enable = value; if (m_enable) ToBlink(); else SetShape(Weights.Length - 1); } } } }