Example #1
0
    protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
    {
        base.OnUpdate(elapseSeconds, realElapseSeconds);

        CachedTransform.Translate(CachedTransform.forward * bulletData.Speed * elapseSeconds, Space.World);

        zeroSpeedAutoDestroyTimes += elapseSeconds;

        // 将超出边界的子弹隐藏
        if (PositionUtility.IsOutOfMapBoundary(CachedTransform.position))
        {
            GameEntry.Entity.HideEntity(this.Id);
        }
        // 对于速度为0的子弹,在0.5秒后自动销毁
        else if (bulletData.Speed == 0)
        {
            if (zeroSpeedAutoDestroyTimes >= 0.5f)
            {
                GameEntry.Entity.HideEntity(this.Id);
            }
        }
    }