static void ResetGameObjectReferences(GameObject go) { // Try to get the swapper AssetResolutionSwapper swapper = go.GetComponent <AssetResolutionSwapper>(); if (swapper != null) { SpriteRenderer spriteRenderer = go.GetComponent <SpriteRenderer>(); if (spriteRenderer != null && swapper.SpriteName.Length > 0) { if (!swapper.DisableSwapping) { spriteRenderer.sprite = swapper.defaultSprite; } } Animator animator = go.GetComponent <Animator>(); if (animator != null && swapper.AnimationControllerName.Length > 0) { if (!swapper.DisableSwapping) { animator.runtimeAnimatorController = swapper.defaultAnimatorController; } } } Transform transf = go.transform; int i; for (i = 0; i < transf.childCount; ++i) { ResetGameObjectReferences(transf.GetChild(i).gameObject); } }
// static AssetResolutionSwapper AddAssetSwapper(GameObject go) { AssetResolutionSwapper swapper = go.AddComponent <AssetResolutionSwapper>(); Multires._bDisableUpdate = false; swapper.ForceUpdate(); Multires._bDisableUpdate = true; return(swapper); }
static void PrepareGameObject(GameObject go) { // Try to get the swapper AssetResolutionSwapper swapper = go.GetComponent <AssetResolutionSwapper>(); // Get sprite renderer SpriteRenderer spriteRenderer = go.GetComponent <SpriteRenderer>(); if (spriteRenderer != null && spriteRenderer.sprite != null) { if (swapper == null) { swapper = AddAssetSwapper(go); } if (!swapper.DisableSwapping) { // Remove reference to prevent loading swapper.defaultSprite = spriteRenderer.sprite; spriteRenderer.sprite = null; } } // Does the prefab have an animator Animator animator = go.GetComponent <Animator>(); if (animator != null && animator.runtimeAnimatorController != null) { if (swapper == null) { swapper = AddAssetSwapper(go); } if (!swapper.DisableSwapping) { // Remove reference to prevent loading swapper.defaultAnimatorController = animator.runtimeAnimatorController; animator.runtimeAnimatorController = null; } } // Iterate through children Transform transf = go.transform; GameObject child; int i; for (i = 0; i < transf.childCount; ++i) { child = transf.GetChild(i).gameObject; PrepareGameObject(child); } }
// Remove sprite references static void RemoveSpriteReferences(GameObject[] objects) { Debug.Log("Remove sprite references begin"); SpriteRenderer renderer; AssetResolutionSwapper swapper = null; Animator animator; foreach (GameObject go in objects) { swapper = go.GetComponent <AssetResolutionSwapper>(); // Sprite renderers renderer = go.GetComponent <SpriteRenderer>(); if (renderer != null) { if (renderer.sprite != null) { if (swapper == null) { swapper = AddAssetSwapper(go); } if (!swapper.DisableSwapping) { // Remove references to prevent loading swapper.defaultSprite = renderer.sprite; renderer.sprite = null; } } else { if (swapper != null) { swapper.SpriteName = ""; swapper.defaultSprite = null; } } } // Controller references animator = go.GetComponent <Animator>(); if (animator != null && animator.runtimeAnimatorController != null) { if (swapper == null) { swapper = AddAssetSwapper(go); } if (!swapper.DisableSwapping) { // Remove references to prevent loading swapper.defaultAnimatorController = animator.runtimeAnimatorController; animator.runtimeAnimatorController = null; } } else { if (swapper != null) { swapper.AnimationControllerName = ""; swapper.defaultAnimatorController = null; } } } Debug.Log("Remove sprite references finished"); }