DoTween插件实现物体或者场景振动效果

一、场景场景,并且做好布局,如下所示:
二、编写控制振动的脚本
/***
*	Title:"SimpleUIFrame" UI框架项目
*		主题:关于场景或物体的振动(原理是使摄像机振动)
*	Description:
*		功能:实现场景的整体振动
*	Date:2017
*	Version:0.1版本
*	Author:Coffee
*	Modify Recoder:
*/

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

namespace SimpleUIFrame
{
	public class MyScreenShake : MonoBehaviour
	{
        public Transform MainCamera;                                //主摄像机(表示整个场景振动)
        public Transform NeedGameObject;                            //需要振动的物体

        //物体移动或返回指定位置的标识
        private bool IsMove = false;

        private void Update()
        {
            //整个场景振动
            if (Input.GetKeyDown(KeyCode.A))
            {
                MyShake(MainCamera);
            }
            //单一物体振动
            if (Input.GetKeyDown(KeyCode.B))
            {
                MyShake(NeedGameObject);
            }
        }

        public void MyShake( Transform tf)
        {
            if (tf!=null)
            {
                //控制振动
                //Tweener tweener = tf.DOShakePosition(5);
                //Tweener tweener = tf.DOShakePosition(1,1);

                ////表示在X轴方向进行振动
                //Tweener tweener = tf.DOShakePosition(11, new Vector3(1, 0, 0), 20);

                ////表示在Y轴方向进行振动
                Tweener tweener = tf.DOShakePosition(11, new Vector3(0, 1, 0), 20);
            }
            
        }





    }//class_end
}

三、将该脚本添加到脚本管理器上(在场景中新建一个空物体改名为_ScriptMgr)上,然后给脚本指定对应的物体
四、运行场景,然后开启大写,按下键盘"A",则整个场景振动,按下键盘"B"则指定需要振动的物体(这里是小球)振动

猜你喜欢

转载自blog.csdn.net/xiaochenXIHUA/article/details/79958179