// Start is called before the first frame update void Start() { _wantedDirection = transform.forward; _rigidbody = GetComponent <Rigidbody>(); _selfSettings = EnemiesManager.Get[tag]; _selfData = new EnemiesManager.BoidData() { position = gameObject.transform.position, forward = gameObject.transform.forward }; #if UNITY_EDITOR // GIZMOS _gizmoDatum = new List <GizmoData>(); #endif // UNITY_EDITOR EnemiesManager.Get.AddAgent(this); }
private void OnDrawGizmosSelected() { Behaviour.EnemiesManager.BoidSettings settings = Behaviour.EnemiesManager.Get?.m_avoidSettings; foreach (var avoidData in m_avoidDatum) { if (settings != null) { Gizmos.color = settings.m_avoid ? Color.red : Color.green; Gizmos.DrawSphere(avoidData.position, settings.m_avoidanceRadius); Gizmos.DrawWireSphere(avoidData.position, settings.m_relevantRadius); } else { Gizmos.color = Color.yellow; Gizmos.DrawSphere(avoidData.position, 15); } Gizmos.color = Color.magenta; Gizmos.DrawLine(avoidData.position, avoidData.position + avoidData.forward * 30); } }