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); } } }