Пример #1
0
        private List <AimRayHit> FindTarget(string targetTag)
        {
            var aimRays = new List <AimRayHit>();

            for (int i = 0; i < 360; i++)
            {
                AimRayHit aimRayHit;
                var       deg = i * Mathf.Deg2Rad;
                var       hit = AimRay.Shot(transform.position, new Vector2(Mathf.Cos(deg), Mathf.Sin(deg)), 30,
                                            LayerMask.GetMask("WallLayer") | LayerMask.GetMask("PlayerLayer"), targetTag, out aimRayHit);
                if (hit)
                {
                    aimRays.Add(aimRayHit);
                }
            }
            return(aimRays);
        }
Пример #2
0
        public void OnDrawGizmos()
        {
            if (!AimGizmos)
            {
                return;
            }

            AimRayHit aimRayHit;

            AimRay.Shot(transform.position, transform.right, 100, LayerMask.GetMask("WallLayer") | LayerMask.GetMask("EnemyLayer"), "Enemy", out aimRayHit);

            var firstPoint = aimRayHit.LinePath.FirstOrDefault();

            for (int i = 1; i < aimRayHit.LinePath.Count; i++)
            {
                var secondPoint = aimRayHit.LinePath[i];
                Gizmos.DrawLine(firstPoint, secondPoint);
                firstPoint = secondPoint;
            }
        }