Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }