U3d插件——Swarm Object Manager分析(四)bullet和 Explosion 的实现
来源:互联网 发布:宝鸡时代网络 编辑:程序博客网 时间:2024/05/18 07:37
public class Bullet : SwarmItem
{
//可以自己实现一个属性方便调用 ,而不是用transforms
private Vector3 _velocity;
private Vector3 _originalScale;
//必须实现的初始化函数
public override void Initialize(SwarmItemManager swarmItemManager, int prefabIndex, bool debugEvents)
{
base.Initialize(swarmItemManager, prefabIndex, debugEvents);//这里可以写一些自己的初始化信息,注意这个初始化是随着swarmItemManager启动时启动的 只启动一次
_originalScale = _thisTransform.localScale;
}
/// 改变活动/不活动状态的 父对象时调用,用来初始化信息
///重要
{
//重新设置scale
_thisTransform.localScale = _originalScale;
}
//提供给ship调用的函数
public void Fire(Vector3 velocity)
{
_velocity = velocity;
}
public override void FrameUpdate()
{
Position += (_velocity * Time.deltaTime);
if (Position.sqrMagnitude >= Main.Instance.asteroidManager.FieldRadiusSquared)
{
// kill bullet if out of bounds
Kill();
}
//上面写完自己的调用后 调用检查是不是life time 结束的标志
base.FrameUpdate();
}
//检测碰撞 自己的函数
void OnTriggerEnter(Collider otherCollider)
{
Asteroid asteroid = (Asteroid)otherCollider.gameObject.GetComponent(typeof(Asteroid));
if (asteroid != null)
asteroid.Kill();
// kill the bullet
Kill();
}
}
、、、、、、粒子系统的设置 和上面的bullet很类似
public class Explosion : SwarmItem
{
private ParticleEmitter emitter; //引用到的粒子系统
public override void Initialize(SwarmItemManager swarmItemManager, int prefabIndex, bool debugEvents)
{
base.Initialize(swarmItemManager, prefabIndex, debugEvents);
// cache the emitter for later use
emitter = (ParticleEmitter)gameObject.GetComponent(typeof(ParticleEmitter));
emitter.emit = false;
}
//改变状态时调用 和上面有区别
protected override void OnStateChange()
{
switch (_state)
{
case STATE.Active:
// turn on the emitter if active
emitter.emit = true;
break;
case STATE.Inactive:
// clear the particles and turn off emitter if inactive
emitter.ClearParticles(); //清除
emitter.emit = false;
break;
}
}
}
- U3d插件——Swarm Object Manager分析(四)bullet和 Explosion 的实现
- U3d插件——Swarm Object Manager分析(五)Asteroid 和 AsteroidManager 的实现
- U3d插件——Swarm Object Manager分析(一)Main和 ship(角色)
- U3d插件——Swarm Object Manager分析(三)SwarmItemManager(未完)
- U3d插件——Swarm Object Manager分析(二)SwarmItem
- U3D——刀光轨迹插件的改进
- Swarm, Swarmkit 和 Swarm模式的比较
- Swarm, Swarmkit 和 Swarm模式的比较
- U3D——刀光轨迹插件
- 【原创】swarm源码分析(4)---Scheduler和Api
- Bullet的3D Max插件
- 构建自己的C/C++插件开发框架(四)——核心层设计和实现
- 构建自己的C/C++插件开发框架(四)——核心层设计和实现
- 构建自己的C/C++插件开发框架(四)——核心层设计和实现
- Swarm——分布式计算的新方法
- 关于SalesLine上Inquiries->Explosion 功能的代码一步实现
- Docker Swarm入门(四)Demo
- Swarm负责人谈Docker Swarm的架构、现状和未来
- 分布式监控系统Ganglia
- 物理层传输格式的用法,关于TF,TFS,TFC,TFCS,TFI,TFCI
- android button 效果设计
- 25个让Java程序员更高效的Eclipse插件
- ConcurrentHashMap
- U3d插件——Swarm Object Manager分析(四)bullet和 Explosion 的实现
- click的i++ ------关于jquery的一些事
- 基于C# 的HTML解析器
- 声明和定义的区别
- chromium ui test html 对象
- 周总结:
- 九度oj1043
- VC 内存常见问题
- centos 安装 mysql + 中文乱码 + 远程登录 + 数据库备份和恢复