应用Unity的Dots技术再一个锥形范围内不断生成子弹

本文介绍了如何在Unity中利用Dots技术创建一个子弹结构体BulletMove,并详细阐述了如何构建子弹移动系统,该系统在接收到鼠标点击后能在锥形范围内生成并移动子弹。此外,还讲解了如何生成一定数量的实体,确保子弹实体具有正确的网格和材质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用Unity的Dots技术再一个锥形范围内不断生成子弹《一》

创建一个子弹结构体

public struct BulletMove : IComponentData
{
public float MoveSpeed;
public float ExistTime;
}

创建子弹移动系统

创建一个子弹生成时间,遍历拥有这些结构体的组件,并操纵这些实体!

private readonly float LifeTime = 5f;

protected override void OnUpdate()
{
    Entities.ForEach((Entity e, ref BulletMove bulletMoveSpeed, ref Translation transform, ref LocalToWorld lw) => 
    {
        transform.Value += (float3)Vector3.Normalize(lw.Forward) * bulletMoveSpeed.MoveSpeed * Time.DeltaTime;

        Debug.Log(bulletMoveSpeed.ExistTime + "  : bulletMoveSpeed.ExistTime   ::");
        
        if(UnityEngine.Time.realtimeSinceStartup - bulletMoveSpeed.ExistTime > LifeTime)
        {
            EntityManager.DestroyEntity(e);
        }
    });
}

生成一定数量的实体

public Mesh m_mesh;
public Material m_material;//这里写好后记得出去给这两个玩意儿赋值
private void Update()
{

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值