/// <summary> /// Draw the sprite preview. /// </summary> public override void OnPreviewGUI(Rect rect, GUIStyle background) { UISprite sprite = target as UISprite; if (sprite == null || !sprite.isValid) { return; } Texture2D tex = sprite.mainTexture as Texture2D; if (tex == null) { return; } float interval = 10f; float width = (rect.width - interval) / 2; Rect leftRect = new Rect(rect.x, rect.y, width, rect.height); Rect rightRect = new Rect(rect.x + width + interval, rect.y, width, rect.height); UISpriteData sd = sprite.atlas.GetSprite(sprite.spriteName); NGUIEditorTools.DrawAtlas(tex, leftRect, sd); NGUIEditorTools.DrawSprite(tex, rightRect, sd, sprite.color); //点选图片 Event e = Event.current; if (e.type == EventType.MouseDown) { //下面函数通过点击的坐标,和texture、texture draw rect等信息计算出被点选的sprite UISpriteData click = NGUIEditorTools.GetUISpriteData(tex, sprite.atlas, leftRect, e.mousePosition); if (click != null) { sprite.spriteName = click.name; EditorUtility.SetDirty(sprite); } } }