Beispiel #1
0
        public static void GenerateCollider(GameObject triggerObject, WIColliderType colliderType, STransform colliderTransform)
        {
            switch (colliderType)
            {
            case WIColliderType.ConvexMesh:
                MeshCollider mcc = triggerObject.gameObject.GetOrAdd <MeshCollider>();
                mcc.sharedMesh = triggerObject.gameObject.GetOrAdd <MeshFilter>().mesh;
                mcc.convex     = true;
                break;

            case WIColliderType.Mesh:
                MeshCollider mc = triggerObject.gameObject.GetOrAdd <MeshCollider>();
                mc.sharedMesh = triggerObject.gameObject.GetOrAdd <MeshFilter>().mesh;
                mc.convex     = false;
                break;

            case WIColliderType.Box:
                BoxCollider bc = triggerObject.GetOrAdd <BoxCollider>();
                break;

            case WIColliderType.Sphere:
                SphereCollider sc = triggerObject.GetOrAdd <SphereCollider>();
                sc.radius    = colliderTransform.Scale.x;
                sc.center    = colliderTransform.Position;
                sc.isTrigger = true;
                break;

            case WIColliderType.Capsule:
                CapsuleCollider cc = triggerObject.GetOrAdd <CapsuleCollider>();
                break;

            case WIColliderType.UseExisting:
                break;

            default:
                break;
            }
        }
Beispiel #2
0
        protected void CreateCollider(WIColliderType colliderType)
        {
            switch (colliderType)
            {
            case WIColliderType.Sphere:
                SphereCollider sc = gameObject.GetOrAdd <SphereCollider>();
                sc.center    = mBaseState.ColliderTransform.Position;
                sc.radius    = mBaseState.ColliderTransform.Scale.x;
                sc.isTrigger = true;
                break;

            default:
                BoxCollider bc = gameObject.GetOrAdd <BoxCollider>();
                bc.center    = mBaseState.ColliderTransform.Position;
                bc.size      = mBaseState.ColliderTransform.Scale;
                bc.isTrigger = true;
                break;

            case WIColliderType.None:
                //it's a custom script, must be creating its own
                break;
            }
        }