bool CheckSpriteProblem(Sprite sprite) { string spriteSheet = AssetDatabase.GetAssetPath(sprite); Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath(spriteSheet).OfType <Sprite>().ToArray(); if (sprites.Length > 1) { var path = IOUtility.GetPath(sprite); var importer = (TextureImporter)TextureImporter.GetAtPath(path); return(!importer.isReadable); } return(false); }
protected override void onGUIHeader() { GUI.Label(headerRect, Title, titleStyle); // Portrait if (_node.Portrait != null) { // Get the portrait texture, if it's changed. if (_portraitName != _node.Portrait.name) { string spriteSheet = AssetDatabase.GetAssetPath(_node.Portrait); Sprite[] sprites = AssetDatabase.LoadAllAssetsAtPath(spriteSheet).OfType <Sprite>().ToArray(); if (sprites.Length == 1) { _portrait = _node.Portrait.texture; } else { var path = IOUtility.GetPath(_node.Portrait); var importer = (TextureImporter)TextureImporter.GetAtPath(path); if (importer.isReadable) { _portrait = new Texture2D((int)_node.Portrait.rect.width, (int)_node.Portrait.rect.height); var pixels = _node.Portrait.texture.GetPixels((int)_node.Portrait.textureRect.x, (int)_node.Portrait.textureRect.y, (int)_node.Portrait.textureRect.width, (int)_node.Portrait.textureRect.height); _portrait.SetPixels(pixels); _portrait.Apply(); } else { _portrait = _node.Portrait.texture; } } _portraitName = _node.Portrait.name; } Rect r = new Rect(headerRect.x - 30, headerRect.y - 30, 60, 60); GUI.Label(r, _portrait); } // Actor Name if (_node.ActorName != "") { GUIContent label = new GUIContent(_node.ActorName); Vector2 size = _actorNameStyle.CalcSize(label); Color c = headerColor; c.a = .5f; float xPos = headerRect.x; if (_node.Portrait != null) { xPos += 30; } Rect r = new Rect(xPos + 5, headerRect.y - size.y - 10, size.x + 10, size.y + 5); EditorGUI.DrawRect(r, c); GUI.Label(r, label, _actorNameStyle); } float x = headerRect.x + headerRect.width - 5; float y = headerRect.y + (headerRect.height - 20) / 2; // Audio Clip if (_node.Audio != null) { GUI.Label(new Rect(x - 20, y, 20, 20), EditorGUIUtility.IconContent("SceneviewAudio")); x -= 30; } // Custom Camera if (_node.CustomCameraEnable) { GUI.Label(new Rect(x - 20, y - 3, 40, 20), new GUIContent(_node.CameraIndex.ToString(), EditorGUIUtility.IconContent("Camera Icon").image), textStyle); } }