| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | using UnityEngine;namespace HQFPSWeapons{    public class PlayerSpawnPoints : MonoBehaviour    {        [SerializeField]        private float m_MaxVerticalRaycast = 2f;        [SerializeField]        private LayerMask m_GroundLayerMask = 0;        private Transform[] m_Spawnpoints;        public Vector3 GetRandomSpawnPoint()        {            if (m_Spawnpoints != null)            {                Vector3 spawnPoint = m_Spawnpoints[Random.Range(0, m_Spawnpoints.Length)].position;                RaycastHit hit;                if (Physics.Raycast(spawnPoint, -transform.up, out hit, m_MaxVerticalRaycast, m_GroundLayerMask))                {                    spawnPoint = hit.point + (Vector3.up * 0.1f);                }                return spawnPoint;            }            else return Vector3.zero;        }        public Quaternion GetRandomRotation()        {            return Quaternion.Euler(0, Random.Range(0, 360), 0);        }        private void Awake()        {            m_Spawnpoints = GetComponentsInChildren<Transform>();        }    }}
 |