• unity3d笔记:控制特效的播放速度


           一般在游戏中,主角或者怪物会受到减速效果,或者攻击速度减慢等类似的状态。本身动作减速的同时,衔接在角色上的特效也需要改变相应的播放速度。一般特效有三个游戏组件:

     

    关键点就是改变Animator,Animation和Particle System的Speed这个速度变量。就可以随意的控制特效的播放速度了。

    代码如下:

    using UnityEngine;
    using System.Collections;
    
    public class EffectSpeedControl : MonoBehaviour
    {
    
       
        public float time = 1;//销毁时间
        float mSpeed = 1f;//播放时间
    
        void Start()
        {
    
            ChangeSpeed(transform);
        }
        void ChangeSpeed(Transform tr)
        {
    
            if (tr.animation != null)
            {
                foreach (AnimationState an in tr.animation)
                {
                    an.speed = mSpeed;
                }
            }
            Animator ani = tr.GetComponent<Animator>();
            if (ani != null)
            {
                ani.speed = mSpeed;
            }
            if (tr.particleSystem != null)
            {
                tr.particleSystem.playbackSpeed = mSpeed;
            }
            for (int i = 0; i < tr.childCount; i++)
            {
                ChangeSpeed(tr.GetChild(i));
            }
    
        }
        
        public float Speed
        {
            get
            {
                return mSpeed;
            }
            set
            {
                mSpeed = value;
                ChangeSpeed(transform);
            }
        }
        void Update()
        {
            time -= Time.deltaTime * mSpeed;
            if (time < 0)
            {
                Destroy(this.gameObject);
    
            }
        }
    }
    
  • 相关阅读:
    使用linux下的C操作SQLLITE
    s3c6410下移植sqlite3.7.8
    sqlite3在Linux下的安装和使用
    Linux下如何查看哪些进程占用的CPU内存资源最多
    查看LINUX进程内存占用情况
    ssh免密码登陆及其原理
    搭建zookeeper和Kafka集群
    HTTP 错误码
    time 命令
    Shell 运算相关
  • 原文地址:https://www.cnblogs.com/CodeFaker/p/4449028.html
Copyright © 2020-2023  润新知