using System.Collections.Generic; using UnityEngine; namespace CC { public class HeadColliders : MonoBehaviour { public List colliders = new List(); public void createColliders() { foreach (var colliderSetup in colliders) { if (colliderSetup.mirror) { CreateColliderObject(colliderSetup.position, colliderSetup.label + "_l"); Vector3 mirroredPosition = new Vector3(colliderSetup.position.x, colliderSetup.position.y, -colliderSetup.position.z); CreateColliderObject(mirroredPosition, colliderSetup.label + "_r"); } else CreateColliderObject(colliderSetup.position, colliderSetup.label); } } private void CreateColliderObject(Vector3 localPosition, string label) { GameObject colliderObject = new GameObject(label); //colliderObject.layer = LayerMask.NameToLayer("UI"); colliderObject.transform.SetParent(transform); colliderObject.transform.localPosition = localPosition; SphereCollider sphereCollider = colliderObject.AddComponent(); sphereCollider.radius = 0.03f; var thisCollider = GetComponent(); if (thisCollider != null) Physics.IgnoreCollision(thisCollider, sphereCollider, true); } } [System.Serializable] public class ColliderSetup { public string label; public Vector3 position; public bool mirror; } }