c#4
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
}
随机推荐
- Linux-dd命令详解【转】
转自http://www.cnblogs.com/dkblog/archive/2009/09/18/1980715.html Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非 ...
- javascript闭包实例
实例一 //每次执行一次c()i加1.关键在于var c=a():c容器将i装载记住了. function a(){ var i=0; function b(){ alert(++i); } retu ...
- Unity. Navigation和寻路
Navigation Static:不会移动.可以用于计算可行走区域.例如:地板.墙.静态障碍物. 将一个物体选为Navigation Static:Navigation窗口-> 勾选项
- mysql+mybatis 插入可递增字段库表操作
mysql本身类型介绍: BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 70 ...
- jQuery-vsdoc.js文件是vs中的JavaScript intellisense,
在VS 2008中启用jQuery Intellisense的步骤 要在VS中启用jQuery的intellisense完成,你要遵循三个步骤: 第一步: 安装VS 2008 SP1 VS 2008 ...
- 什么是Spring的命名空间及使用Spring 的命名空间p 装配属性
这个就要从XML说了,Spring的配置管理可以利用XML方式进行配置,而XML里面就有命名空间这个概念..实际上就和标签的意思有点像 你给一个命名空间以后,这个XML文件里面就可以用那个命名空间上下 ...
- Android 背景图片重复平铺
有时候我们需要将一个图片横向或者纵向的平铺(重复循环),这个时候我们需要创建一个xml文件,如下: <?xml version ="1.0" encoding =" ...
- webpack需要全局安装,才能使用webpack命令
webpack全局安装,具体项目中才能使用webpack命令: npm install webpack -g
- java远程调试(断点)程序/tomcat( eclipse远程调试Tomcat方法)
tomcat远程调试: 1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_soc ...
- eclipse修改工程名
直接修改工程可能会产生一些莫名其妙的问题,需遵循以下三步: 1. 右键工程:Refactor->Rename,或选中工程按F2,修改名称 2. 右键工程:Properties->Web P ...