void SpriteChangedCallbackImpl(tk2dSpriteCollectionData spriteCollection, int spriteId, object data) { tk2dJellySprite targetObject = this.target as tk2dJellySprite; targetObject.m_SpriteId = spriteId; targetObject.m_Tk2DCollection = spriteCollection; Bounds bounds = targetObject.GetCurrentSpriteDef().GetUntrimmedBounds(); float pivotX = -bounds.center.x / bounds.extents.x; float pivotY = -bounds.center.y / bounds.extents.y; targetObject.m_CentralBodyOffset = targetObject.m_SoftBodyOffset = new Vector3(pivotX * bounds.extents.x * targetObject.m_SpriteScale.x, pivotY * bounds.extents.y * targetObject.m_SpriteScale.y, 0.0f); targetObject.RefreshMesh(); }
protected override void DisplayInspectorGUI() { tk2dJellySprite targetObject = this.target as tk2dJellySprite; tk2dSpriteGuiUtility.SpriteSelector(targetObject.m_Tk2DCollection, targetObject.m_SpriteId, new tk2dSpriteGuiUtility.SpriteChangedCallback(SpriteChangedCallbackImpl), null); if (tk2dPreferences.inst.displayTextureThumbs && targetObject.m_Tk2DCollection != null) { tk2dSpriteDefinition def = targetObject.GetCurrentSpriteDef(); if (targetObject.m_Tk2DCollection.version < 1 || def.texelSize == Vector2.zero) { string message = ""; message = "No thumbnail data."; if (targetObject.m_Tk2DCollection.version < 1) { message += "\nPlease rebuild Sprite Collection."; } tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info); } else { GUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(" "); int tileSize = 128; Rect r = GUILayoutUtility.GetRect(tileSize, tileSize, GUILayout.ExpandWidth(false)); tk2dGrid.Draw(r); tk2dSpriteThumbnailCache.DrawSpriteTextureInRect(r, def, Color.white); GUILayout.EndHorizontal(); } } base.DisplayInspectorGUI(); }