/// <summary> /// Function that can be used to destroy game object or entity target at given distance from player/source /// </summary> /// <param name="target">Target to destroy</param> /// <param name="distanceToDestroyAt">Distance to geoVision component when given target gets destroyed</param> /// <returns></returns> public IEnumerator DestroyTargetAtDistance(GeometryDataModels.Target target, float distanceToDestroyAt) { var targetToBeDestroyed = target; if (targetToBeDestroyed.distanceToCastOrigin == 0) { yield break; } float timeOut = 1f; while (targetToBeDestroyed.distanceToCastOrigin > distanceToDestroyAt) { if (timeOut < 0.1f) { DestroyTarget(targetToBeDestroyed); break; } timeOut -= Time.deltaTime; yield return(null); } DestroyTarget(targetToBeDestroyed); }
/// <summary> /// Function that can be used to destroy game object or entity target. /// </summary> public void DestroyTarget(GeometryDataModels.Target target) { if (target.isEntity) { if (transformEntitySystem == null) { transformEntitySystem = EntityWorld.CreateSystem <TransformEntitySystem>(); } transformEntitySystem.DestroyTargetEntity(target); } else { var geoInfo = GetGeoInfoBasedOnHashCode(target.GeoInfoHashCode); Destroy(geoInfo.gameObject); } }