c#4

时间:2021-02-01 20:06:20
	

float translation = Time.deltaTime * 10;
transform.Translate(0, 0, translation);//沿z轴移动

 

public class AutoDestoryComponent : MonoBehaviour 

    #region ICanCache 
    public ParticleSystem[] m_pss = null; 
    public int m_life = 1; //3条命 
    public float m_AutoDeadTime = 3;//3s自动销毁

private int m_life_Base = 3; //3条命【恢复用】 
    private float m_AutoDeadTime_Base = 3;//3s自动销毁【恢复用】【-1:表示不自动销毁,如Enemy】

void Update() 
    { 
        //需要自动销毁 
        if (m_AutoDeadTime_Base >= 0) 
        { 
            m_AutoDeadTime -= Time.deltaTime;//每一帧减去一个Time.deltaTime

if (m_AutoDeadTime <= 0) 
            { 
                InnerDead(); // 物体销毁
                return; 
            } 
        }

if (m_life <= 0) 
        { 
            InnerDead(); //玩家死亡
        } 
    }

/// <summary> 
    /// 设置自动销毁数据 
    /// </summary> 
    /// <param name="life_base">默认生命值</param> 
    /// <param name="autoDeadTime_base">-1不自动销毁;其他数据代表销毁时间(单位s)</param> 
    public void SetBasePara(int life_base = 1, float autoDeadTime_base = -1) 
    { 
        m_AutoDeadTime = m_AutoDeadTime_Base = autoDeadTime_base; //用来恢复时间
        m_life = m_life_Base = life_base; //用来恢复初始生命
    }

//是否启用 
    public bool IsUse { get; set; } 
    //死后位置 
    public Vector3 DeathPosition 
    { 
        get 
        { 
            return new Vector3(2000, 2000, 2000); //返回新位置Vector3(x,y,z)
        } 
    }

//复活 
    public void Init(Vector3 position, Quaternion rotation) 
    { 
        transform.gameObject.SetActive(true); 
        transform.position = position; 
        transform.rotation = rotation; 
        IsUse = true; 
        foreach (ParticleSystem item in m_pss) 
        { 
            item.Play(true); 
        }

//有些绕 
        m_life = m_life_Base; 
        m_AutoDeadTime = m_AutoDeadTime_Base; 
    }

private void InnerDead() 
    { 
        IsUse = false; 
        transform.position = DeathPosition; 
        foreach (ParticleSystem item in m_pss) 
        { 
            item.Stop(true); 
        }

this.gameObject.SetActive(false); 
    } 
    #endregion 
}

随机推荐

  1. &lbrack;AlwaysOn Availability Groups&rsqb;健康模型 Part 1——概述

    健康模型概述 在成功部署AG之后,跟踪和维护健康状况是很重要的. 1.AG健康模型概述 AG的健康模型是基于策略管理(Policy Based Management PBM)的.如果不熟悉这个特性,可 ...

  2. Unity3d 无网络权限下打开网站

    有人问“更多游戏”没有网络权限怎么实现,其实调用浏览器访问外部链接不需要网络通讯权限,代码如下: Uri moreGame = Uri.parse("http://wapgame.189.c ...

  3. CLI结果输出

    例子:FTP::11.245.253.20_CIPS_dev_bak\/opt/IBM/db2/V9.7/samples/ 要不要修改整体结构,先看看细节 CLI结果输出: 1. 逐条的获取--确定产 ...

  4. gcc的使用

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/6065410. ...

  5. java&period;lang&period;Exception&colon; Socket bind failed

    1.错误描述 严重: Failed to initialize end point associated with ProtocolHandler ["http-apr-8080" ...

  6. &lbrack;NOI 2016&rsqb;区间

    Description 在数轴上有 $n$ 个闭区间 $[l_1,r_1],[l_2,r_2],...,[l_n,r_n]$.现在要从中选出 $m$ 个区间,使得这 $m$ 个区间共同包含至少一个位置 ...

  7. SVN迁移到GitLab,保留提交记录

    1.下载GitBash 此工具自带git svn命令,无需再下载git-svn工具 2.GitBash终端中输入以下命令 git svn clone svnurl srcPath 3.push本地仓库 ...

  8. 20175213吕正宏 MyCP(课下任务,必做)

    一.任务详情: 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件( ...

  9. &lbrack;NOIp2015提高组&rsqb;跳石头

    OJ题号:洛谷2678 思路:贪心+二分. 从前往后扫,一旦这个石头到上一个选的石头的距离小于二分的值就把这块石头移走. #include<cstdio> #include<queu ...

  10. jQuery动画函数回调

    $("#show").click(function () { //function 是显示完成之后的回调函数 $("p").show(2000,function ...