Unity知识记录

您所在的位置:网站首页 ae人物眨眼睛 Unity知识记录

Unity知识记录

2023-11-09 12:09| 来源: 网络整理| 查看: 265

人物眨眼的关键是你的模型要有这个形变器。

首先找到你的Skinned Mesh Renderer中的BlendShapes属性。

展开后可以看到模型上所有的形变器,这里需要你尝试哪一个是控制眨眼的。

例如这里就是第0个和第1个变形器控制左右眼睛的状态。

所以接下来就是用代码来控制这两个属性,关键问题是如何设置这个值。

可以通过public SkinnedMeshRenderer skin 获取到对应得SkinnedMeshRenderer。

然后我们设置形变器的值就可以了,顺序是从上到下,从0开始。

怎么控制这个值的变化就看自己发挥了,我会给出一个运行方式。

彩紫睨羽

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class EyeBlink : MonoBehaviour

{

    public SkinnedMeshRenderer skin;

    [Tooltip("是否激活眨眼")] public bool enableBlink = true;

    [Tooltip("眼睛闭上时的比例")] public float ratio_Close = 100f;

    [Tooltip("眼睛睁开时的比例")] public float ratio_Open = 0f;

    [Tooltip("眼睛当前的比例")] public float current_Ratio = 0f;

    [Tooltip("最小眨眼间隔")] public float minBlink = 2f;

    [Tooltip("最大眨眼间隔")] public float maxBlink = 4f;

    [Tooltip("最大眨眼时间")] public float timeBlink = 0.2f;

    [Tooltip("眨眼间隔计时器")] public float blinkTimer = 0f;

    [Tooltip("下次眨眼间隔")] private float blinkTime = 0;

    [Tooltip("眨眼的速度")] private float blinkSpeed;

    [Tooltip("是否在闭眼")] private bool closing = true;

    private bool blinking = true;

    void Update()

    {

        if (blinking)

        {

            blinkSpeed = (ratio_Close - ratio_Open) / timeBlink;

            if (closing)

            {

                current_Ratio += Time.deltaTime * blinkSpeed;

            }

            else

            {

                current_Ratio -= Time.deltaTime * blinkSpeed;

            }

            if (current_Ratio  ratio_Close)

            {

                closing = false;

                current_Ratio = ratio_Close;

            }

            skin.SetBlendShapeWeight(0, current_Ratio);

            skin.SetBlendShapeWeight(1, current_Ratio);

        }

        else

        {

            if (blinkTimer > blinkTime)

            {

                blinking = true;

            }

            else

            {

                blinkTimer += Time.deltaTime;

            }

        }

    }

}



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3