Unity UI的抖动效果怎么实现的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity UI的抖动效果怎么实现的?相关的知识,希望对你有一定的参考价值。

很多游戏界面UI有从屏幕外面移动进入的效果,并且移动到指定位置后有一个UI晃动效果(就是不是马上停下来),请问这个晃动效果是怎么实现的?

参考技术A 可以用dotween插件来做移动效果,设置其ease曲线就可以做出类似物体掉落地面弹起然后再贴合地面的效果 参考技术B 可以用dotween插件来做移动效果,设置其ease曲线就可以做出类似物体掉落地面弹起然后再贴合地面的效果 参考技术C 可以用dotween插件来做移动效果,设置其ease曲线就可以做出类似物体掉落地面弹起然后再贴合地面的效果 参考技术D 可以用dotween插件来做移动效果,设置其ease曲线就可以做出类似物体掉落地面弹起然后再贴合地面的效果本回答被提问者和网友采纳

unity3d 摄像机抖动效果 CameraShake

unity3d 摄像机抖动效果 ,利用脚本直接控制;当然也可以选择使用dotween插件,但到不至于为了使用仅一个功能,就导入了一个插件;

脚本示例:  

using UnityEngine;
using System.Collections;

public class CameraShake : MonoBehaviour 
{
    public Transform cameraTransform; 
    private Vector3 _currentPosition;        //记录抖动前的位置
    private float _shakeCD = 0.002f;        //抖动的频率
    private int _shakeCount = -1;            //设置抖动次数
    private float _shakeTime; 
    void Start ()
    {
        if(cameraTransform == null) cameraTransform = transform;
        
        _currentPosition = cameraTransform.position;    //记录抖动前的位置
        _shakeCount = Random.Range (50, 60);            //设置抖动次数
    } 
    void Update ()
    {
        if(_shakeTime + _shakeCD < Time.time && _shakeCount > 0)
        {
            _shakeCount --;
            float radio = Random.Range (-0.01f, 0.01f);
            
            if(_shakeCount == 1)    //抖动最后一次时设置为都动前记录的位置
                radio = 0;
            
            _shakeTime = Time.time;
            cameraTransform.position = _currentPosition + Vector3.one * radio;
        }
    }
}

 

以上是关于Unity UI的抖动效果怎么实现的?的主要内容,如果未能解决你的问题,请参考以下文章

Mac - 实现删除按钮的抖动效果

unity 有插值怎么解决摄像机的抖动

Unity界面UI特效怎么实现扭曲效果

Unity3D镜头抖动怎么做?比如发生爆炸后场景的抖动(用镜头抖动或者画面抖动实现),跪求高手回答!

Unity 查看Unity所有的默认UI效果 GUIStyle

Unity 查看Unity所有的默认UI效果 GUIStyle