void DoDemoTexturePacker(tk2dSpriteCollectionSize spriteCollectionSize) { if (GUILayout.Button("Import")) { DestroyData(); // Create atlas spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexturePacker(spriteCollectionSize, texturePackerExportFile.text, texturePackerTexture ); GameObject go = new GameObject("sprite"); go.transform.localPosition = new Vector3(-1, 0, 0); spriteInstance = go.AddComponent<tk2dSprite>(); spriteInstance.SetSprite(spriteCollectionInstance, "sun"); go = new GameObject("sprite2"); go.transform.parent = spriteInstance.transform; go.transform.localPosition = new Vector3(2, 0, 0); tk2dSprite sprite = go.AddComponent<tk2dSprite>(); sprite.SetSprite(spriteCollectionInstance, "2dtoolkit_logo"); go = new GameObject("sprite3"); go.transform.parent = spriteInstance.transform; go.transform.localPosition = new Vector3(1, 1, 0); sprite = go.AddComponent<tk2dSprite>(); sprite.SetSprite(spriteCollectionInstance, "button_up"); go = new GameObject("sprite4"); go.transform.parent = spriteInstance.transform; go.transform.localPosition = new Vector3(1, -1, 0); sprite = go.AddComponent<tk2dSprite>(); sprite.SetSprite(spriteCollectionInstance, "Rock"); } }
private void DoDemoRuntimeSpriteCollection(tk2dSpriteCollectionSize spriteCollectionSize) { if (GUILayout.Button("Use Full Texture", new GUILayoutOption[0])) { this.DestroyData(); Rect region = new Rect(0f, 0f, (float) this.runtimeTexture.width, (float) this.runtimeTexture.height); Vector2 anchor = new Vector2(region.width / 2f, region.height / 2f); this.spriteInstance = tk2dSprite.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, region, anchor, string.Empty).GetComponent<tk2dSprite>(); this.spriteCollectionInstance = this.spriteInstance.Collection; } if (GUILayout.Button("Extract Region)", new GUILayoutOption[0])) { this.DestroyData(); Rect rect2 = new Rect(79f, 243f, 215f, 200f); Vector2 vector2 = new Vector2(rect2.width / 2f, rect2.height / 2f); this.spriteInstance = tk2dSprite.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, rect2, vector2, string.Empty).GetComponent<tk2dSprite>(); this.spriteCollectionInstance = this.spriteInstance.Collection; } if (GUILayout.Button("Extract multiple Sprites", new GUILayoutOption[0])) { this.DestroyData(); string[] names = new string[] { "Extracted region", "Another region", "Full sprite" }; Rect[] regions = new Rect[] { new Rect(79f, 243f, 215f, 200f), new Rect(256f, 0f, 64f, 64f), new Rect(0f, 0f, (float) this.runtimeTexture.width, (float) this.runtimeTexture.height) }; Vector2[] anchors = new Vector2[] { new Vector2(regions[0].width / 2f, regions[0].height / 2f), new Vector2(0f, regions[1].height), new Vector2(0f, regions[1].height) }; this.spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexture(this.runtimeTexture, spriteCollectionSize, names, regions, anchors); GameObject obj4 = new GameObject("sprite"); obj4.transform.localPosition = new Vector3(-1f, 0f, 0f); this.spriteInstance = obj4.AddComponent<tk2dSprite>(); this.spriteInstance.SetSprite(this.spriteCollectionInstance, 0); obj4 = new GameObject("sprite2"); obj4.transform.parent = this.spriteInstance.transform; obj4.transform.localPosition = new Vector3(2f, 0f, 0f); obj4.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "Another region"); } }
public void Create( tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor ) { DestroyInternal(); if (texture != null) { // Copy values this.spriteCollectionSize.CopyFrom( spriteCollectionSize ); this.texture = texture; this.anchor = anchor; Vector2 anchorPos = tk2dSpriteGeomGen.GetAnchorOffset( anchor, texture.width, texture.height ); spriteCollection = tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture( gameObject, texture, spriteCollectionSize, new Vector2(texture.width, texture.height), new string[] { "unnamed" } , new Rect[] { new Rect(0, 0, texture.width, texture.height) }, null, new Vector2[] { anchorPos }, new bool[] { false } ); // don't want to save or see this spriteCollection.hideFlags = HideFlags.HideInInspector; string objName = "SpriteFromTexture " + texture.name; spriteCollection.spriteCollectionName = objName; spriteCollection.spriteDefinitions[0].material.name = objName; spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector; Sprite.SetSprite( spriteCollection, 0 ); } }
public void Create(tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor) { this.DestroyInternal(); if (texture != null) { this.spriteCollectionSize.CopyFrom(spriteCollectionSize); this.texture = texture; this.anchor = anchor; GameObject parentObject = new GameObject("tk2dSpriteFromTexture - " + texture.name); parentObject.transform.localPosition = Vector3.zero; parentObject.transform.localRotation = Quaternion.identity; parentObject.transform.localScale = Vector3.one; parentObject.hideFlags = HideFlags.DontSave; Vector2 vector = tk2dSpriteGeomGen.GetAnchorOffset(anchor, (float) texture.width, (float) texture.height); string[] names = new string[] { "unnamed" }; Rect[] regions = new Rect[] { new Rect(0f, 0f, (float) texture.width, (float) texture.height) }; Vector2[] anchors = new Vector2[] { vector }; this.spriteCollection = SpriteCollectionGenerator.CreateFromTexture(parentObject, texture, spriteCollectionSize, new Vector2((float) texture.width, (float) texture.height), names, regions, null, anchors, new bool[1]); string str = "SpriteFromTexture " + texture.name; this.spriteCollection.spriteCollectionName = str; this.spriteCollection.spriteDefinitions[0].material.name = str; this.spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector; this.Sprite.SetSprite(this.spriteCollection, 0); } }
public void Create( tk2dSpriteCollectionSize spriteCollectionSize, Texture texture, tk2dBaseSprite.Anchor anchor ) { DestroyInternal(); if (texture != null) { // Copy values this.spriteCollectionSize.CopyFrom( spriteCollectionSize ); this.texture = texture; this.anchor = anchor; GameObject go = new GameObject("tk2dSpriteFromTexture - " + texture.name); go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.hideFlags = HideFlags.DontSave; Vector2 anchorPos = tk2dSpriteGeomGen.GetAnchorOffset( anchor, texture.width, texture.height ); spriteCollection = tk2dRuntime.SpriteCollectionGenerator.CreateFromTexture( go, texture, spriteCollectionSize, new Vector2(texture.width, texture.height), new string[] { "unnamed" } , new Rect[] { new Rect(0, 0, texture.width, texture.height) }, null, new Vector2[] { anchorPos }, new bool[] { false } ); string objName = "SpriteFromTexture " + texture.name; spriteCollection.spriteCollectionName = objName; spriteCollection.spriteDefinitions[0].material.name = objName; spriteCollection.spriteDefinitions[0].material.hideFlags = HideFlags.DontSave | HideFlags.HideInInspector; Sprite.SetSprite( spriteCollection, 0 ); } }
void HandleSpriteChanged(tk2dBaseSprite spr) { tk2dSpriteDefinition def = spr.CurrentSprite; int maxAttachPoints = Mathf.Max( def.attachPoints.Length, attachPoints.Count ); if (maxAttachPoints > attachPointUpdated.Length) { // resize to accomodate. no more bounds tests required below attachPointUpdated = new bool[maxAttachPoints]; } foreach (tk2dSpriteDefinition.AttachPoint ap in def.attachPoints) { bool found = false; int currAttachPointId = 0; for (int i = 0; i < attachPoints.Count; ++i) { Transform inst = attachPoints[i]; // A dictionary would be ideal here, but could end up in an indeterminate state due to // user deleting things at runtime. Hopefully the user won't have that many attach points // that a linear search becomes an issue if (inst != null && GetInstanceName(inst) == ap.name) { attachPointUpdated[currAttachPointId] = true; UpdateAttachPointTransform( ap, inst ); found = true; } currAttachPointId++; } if (!found) { GameObject go = new GameObject(ap.name); Transform t = go.transform; t.parent = transform; UpdateAttachPointTransform( ap, t ); attachPointUpdated[attachPoints.Count] = true; attachPoints.Add(t); } } if (deactivateUnusedAttachPoints) { for (int i = 0; i < attachPoints.Count; ++i) { if (attachPoints[i] != null) { GameObject go = attachPoints[i].gameObject; #if UNITY_3_5 if (attachPointUpdated[i] && !go.active) { go.SetActiveRecursively(true); } else if (!attachPointUpdated[i] && go.active) { go.SetActiveRecursively(false); } #else if (attachPointUpdated[i] && !go.activeSelf) { go.SetActive(true); } else if (!attachPointUpdated[i] && go.activeSelf) { go.SetActive(false); } #endif } attachPointUpdated[i] = false; // always reset to false to avoid a second pass update next time } } }
void Awake() { if (sprite == null) { sprite = GetComponent<tk2dBaseSprite>(); if (sprite != null) { HandleSpriteChanged( sprite ); } } }
public void SetFrame(int id) { if (sprite == null) { sprite = this.GetComponent<tk2dBaseSprite>(); } spriteName = sprite.GetCurrentSpriteDef().name; spriteName = spriteName.Substring(0,spriteName.Length-1); sprite.SetSprite(sprite.GetSpriteIdByName(spriteName + id.ToString())); }
// Use this for initialization void Start() { sprite = GetComponent<tk2dBaseSprite>(); if (sprite != null) { sprite.color = color; } }
void DoDemoRuntimeSpriteCollection(tk2dSpriteCollectionSize spriteCollectionSize) { if (GUILayout.Button("Use Full Texture")) { DestroyData(); // Create a sprite, using the entire texture as the sprite Rect region = new Rect(0, 0, runtimeTexture.width, runtimeTexture.height); Vector2 anchor = new Vector2(region.width / 2, region.height / 2); GameObject go = tk2dSprite.CreateFromTexture(runtimeTexture, spriteCollectionSize, region, anchor); spriteInstance = go.GetComponent<tk2dSprite>(); spriteCollectionInstance = spriteInstance.Collection; } if (GUILayout.Button("Extract Region)")) { DestroyData(); // Create a sprite, using a region of the texture as the sprite Rect region = new Rect(79, 243, 215, 200); Vector2 anchor = new Vector2(region.width / 2, region.height / 2); GameObject go = tk2dSprite.CreateFromTexture(runtimeTexture, spriteCollectionSize, region, anchor); spriteInstance = go.GetComponent<tk2dSprite>(); spriteCollectionInstance = spriteInstance.Collection; } if (GUILayout.Button("Extract multiple Sprites")) { DestroyData(); string[] names = new string[] { "Extracted region", "Another region", "Full sprite", }; Rect[] regions = new Rect[] { new Rect(79, 243, 215, 200), new Rect(256, 0, 64, 64), new Rect(0, 0, runtimeTexture.width, runtimeTexture.height) }; Vector2[] anchors = new Vector2[] { new Vector2(regions[0].width / 2, regions[0].height / 2), new Vector2(0, regions[1].height), new Vector2(0, regions[1].height) }; // Create a sprite collection with multiple sprites, using regions of the texture spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexture(runtimeTexture, spriteCollectionSize, names, regions, anchors); GameObject go = new GameObject("sprite"); go.transform.localPosition = new Vector3(-1, 0, 0); spriteInstance = go.AddComponent<tk2dSprite>(); spriteInstance.SetSprite(spriteCollectionInstance, 0); go = new GameObject("sprite2"); go.transform.parent = spriteInstance.transform; go.transform.localPosition = new Vector3(2, 0, 0); tk2dSprite sprite = go.AddComponent<tk2dSprite>(); sprite.SetSprite(spriteCollectionInstance, "Another region"); } }
private void _getSprite() { GameObject go = Fsm.GetOwnerDefaultTarget(gameObject); if (go == null) { return; } _sprite = go.GetComponent<tk2dBaseSprite>(); }
protected override void Awake() { base.Awake (); if(mDefaultRadius == 0) { mDefaultRadius = entMove.radius; } mSpr = GetComponentInChildren<tk2dBaseSprite>(); }
private void Recycle(tk2dBaseSprite o) { var trans = o.transform; var size = o.GetBounds().size; var position = nextPosition; _batch.Enqueue(o); trans.localPosition = position; nextPosition.x += size.x; }
private void Awake() { if (this.sprite == null) { this.sprite = base.GetComponent<tk2dBaseSprite>(); if (this.sprite != null) { this.HandleSpriteChanged(this.sprite); } } }
private void _getSprite() { GameObject go = Fsm.GetOwnerDefaultTarget(gameObject); if (go == null) { return; } _sprite = go.GetComponent <tk2dBaseSprite>(); }
// Callback and delegate void SpriteChangedCallbackImpl(tk2dSpriteCollectionData spriteCollection, int spriteId, object data) { tk2dBaseSprite s = target as tk2dBaseSprite; if (s != null) { s.SwitchCollectionAndSprite(spriteCollection, spriteId); s.EditMode__CreateCollider(); EditorUtility.SetDirty(target); } }
public override void OnInspectorGUI() { tk2dBaseSprite sprite = (tk2dBaseSprite)target; if (generatorCache == null) { generatorCache = new tk2dSpriteGeneratorCache(); } DrawSpriteEditorGUI(sprite); }
void OnSpriteChanged(tk2dBaseSprite spr) { for (int i = 0, max = mRenderers.Length; i < max; i++) { if (spr.renderer == mRenderers[i]) { mRenderers[i].sharedMaterial = mBlinkMats[i]; break; } } }
public void Uninitialize() { this.m_controller.BulletScript.scriptTypeName = this.m_cachedAttack; tk2dBaseSprite tk2dBaseSprite = base.GetComponent <tk2dBaseSprite>(); tk2dBaseSprite.usesOverrideMaterial = false; this.m_controller.MinSpeed /= 1.5f; this.m_controller.MaxSpeed /= 1.5f; SetParticlesPerSecond(GetParticlesPerSecond() / 2); Destroy(this); }
void Awake() { if (sprite == null) { sprite = GetComponent <tk2dBaseSprite>(); if (sprite != null) { HandleSpriteChanged(sprite); } } }
public void Shoot() { Vector3 pt = projPt.position; pt.z = 0.0f; Projectile proj = Projectile.Create(projGroup, projType, pt, projPt.up, mTarget); if (proj) { tk2dBaseSprite spr = proj.GetComponentInChildren <tk2dBaseSprite>(); spr.FlipY = mSprites[0].FlipX; } }
public static void BaseDump(Action <tk2dBaseSprite> orig, tk2dBaseSprite self) { orig(self); if (dumpedCollections.Contains(self.Collection)) { return; } DumpSpriteCollection(self.Collection); dumpedCollections.Add(self.Collection); }
static public void RecalculateSizeSprite(tk2dBaseSprite sprite, SizeFactor factorType, Fit fitType, RoundFloatEnum roundPreference) { if (sprite == null) { return; } sprite.scale = RecalculateByFactor(sprite.scale, factorType); sprite.scale = RecalculateByFit(sprite.scale, fitType, true); sprite.scale = RoundVector3(sprite.scale, roundPreference); }
public static void FillBatchedSprite(tk2dBatchedSprite bs, GameObject go) { tk2dSprite srcSprite = go.transform.GetComponent <tk2dSprite>(); tk2dTiledSprite srcTiledSprite = go.transform.GetComponent <tk2dTiledSprite>(); tk2dSlicedSprite srcSlicedSprite = go.transform.GetComponent <tk2dSlicedSprite>(); tk2dClippedSprite srcClippedSprite = go.transform.GetComponent <tk2dClippedSprite>(); tk2dBaseSprite baseSprite = go.GetComponent <tk2dBaseSprite>(); bs.spriteId = baseSprite.spriteId; bs.spriteCollection = baseSprite.Collection; bs.baseScale = baseSprite.scale; bs.color = baseSprite.color; bs.renderLayer = baseSprite.SortingOrder; if (baseSprite.boxCollider != null) { bs.BoxColliderOffsetZ = baseSprite.boxCollider.center.z; bs.BoxColliderExtentZ = baseSprite.boxCollider.size.z * 0.5f; } else { bs.BoxColliderOffsetZ = 0.0f; bs.BoxColliderExtentZ = 1.0f; } if (srcSprite) { bs.type = tk2dBatchedSprite.Type.Sprite; } else if (srcTiledSprite) { bs.type = tk2dBatchedSprite.Type.TiledSprite; bs.Dimensions = srcTiledSprite.dimensions; bs.anchor = srcTiledSprite.anchor; bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcTiledSprite.CreateBoxCollider); } else if (srcSlicedSprite) { bs.type = tk2dBatchedSprite.Type.SlicedSprite; bs.Dimensions = srcSlicedSprite.dimensions; bs.anchor = srcSlicedSprite.anchor; bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcSlicedSprite.CreateBoxCollider); bs.SetFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly, srcSlicedSprite.BorderOnly); bs.SlicedSpriteBorderBottomLeft = new Vector2(srcSlicedSprite.borderLeft, srcSlicedSprite.borderBottom); bs.SlicedSpriteBorderTopRight = new Vector2(srcSlicedSprite.borderRight, srcSlicedSprite.borderTop); } else if (srcClippedSprite) { bs.type = tk2dBatchedSprite.Type.ClippedSprite; bs.ClippedSpriteRegionBottomLeft = srcClippedSprite.clipBottomLeft; bs.ClippedSpriteRegionTopRight = srcClippedSprite.clipTopRight; bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcClippedSprite.CreateBoxCollider); } }
private void HandleRadialIndicator(float Radius, tk2dBaseSprite Psprite) { Psprite = Owner.sprite; if (!this.m_indicator) { Vector3 position = Psprite.WorldCenter.ToVector3ZisY(0f); this.m_indicator = ((GameObject)UnityEngine.Object.Instantiate(ResourceCache.Acquire("Global VFX/HeatIndicator"), position, Quaternion.identity, sprite.transform)).GetComponent <HeatIndicatorController>(); this.m_indicator.CurrentRadius = 6.5f; this.m_indicator.CurrentColor = new Color(56 / 100, 59 / 100, 64 / 100); } }
void Awake() { mSpriteBatcher = GetComponent<tk2dStaticSpriteBatcher>(); mSprite = GetComponent<tk2dBaseSprite>(); mSpriteAnim = mSprite != null ? mSprite as tk2dAnimatedSprite : null; if(mSpriteAnim != null) { mSpriteAnim.animationCompleteDelegate += OnSpriteAnimComplete; } }
void Awake() { if (sprite == null) { sprite = GetComponent <tk2dBaseSprite>(); } mOrigColor = sprite.color; mWait = new WaitForSeconds(delay); }
public void PlaceBomb(Vector3 position) { SpawnObjectPlayerItem playerItem = PickupObjectDatabase.GetById(LastOwner.PlayerHasActiveSynergy("Cold as Ice") ? 109 : 108).GetComponent <SpawnObjectPlayerItem>(); GameObject bombPrefab = playerItem.objectToSpawn.gameObject; GameObject BombObject = Object.Instantiate <GameObject>(bombPrefab, position, Quaternion.identity); tk2dBaseSprite bombSprite = BombObject.GetComponent <tk2dBaseSprite>(); if (bombSprite) { bombSprite.PlaceAtPositionByAnchor(position, tk2dBaseSprite.Anchor.MiddleCenter); } }
public IEnumerator CreateFadeCoroutine(tk2dBaseSprite TargetSprite, float fStartAlpha, float fTargetAlpha, float fFadeTime) { if (TargetSprite == null) { return(null); } int nSpriteKey = TargetSprite.GetInstanceID(); TargetSprite.SetAlpha(fStartAlpha); return(FadeBlind(TargetSprite, fTargetAlpha, fFadeTime)); }
// Use this for initialization void Start() { if (viewCamera == null) { // Find a camera parent Transform node = transform; while (node && node.GetComponent <Camera>() == null) { node = node.parent; } if (node && node.GetComponent <Camera>() != null) { viewCamera = node.GetComponent <Camera>(); } // See if a tk2dCamera exists if (viewCamera == null && tk2dCamera.inst) { viewCamera = tk2dCamera.inst.mainCamera; } // ...otherwise, use the main camera if (viewCamera == null) { viewCamera = Camera.main; } } sprite = GetComponent <tk2dBaseSprite>(); // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient if (sprite) { // Change this to use animated sprites if necessary // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx UpdateSpriteIds(); } if (GetComponent <Collider>() == null) { BoxCollider newCollider = gameObject.AddComponent <BoxCollider>(); Vector3 colliderExtents = newCollider.extents; colliderExtents.z = 0.2f; newCollider.extents = colliderExtents; } if ((buttonDownSound != null || buttonPressedSound != null || buttonUpSound != null) && GetComponent <AudioSource>() == null) { AudioSource audioSource = gameObject.AddComponent <AudioSource>(); audioSource.playOnAwake = false; } }
public override void StartAction( ) { updateChild( ); sprite = GetComponent <tk2dBaseSprite>(); AlphaTo = Alpha; alphaChanel = AlphaTo / 255; if (sprite) { sprite.color = new Color(sprite.color.r, sprite.color.g, sprite.color.g, AlphaFrom / 255); startAlpha = sprite.color.a; if (Type == FadeType.FadeIn) { // sprite.color = new Color(sprite.color.r , sprite.color.g , sprite.color.g , AlphaFrom ); // startAlpha = sprite.color.a; if (Duration != 0) { fadePerSec = (alphaChanel) / Duration; } else { fadePerSec = alphaChanel; } } else if (Type == FadeType.FadeOut) { startAlpha = sprite.color.a; if (Duration != 0) { fadePerSec = (sprite.color.a - this.alphaChanel) / Duration; } else { fadePerSec = alphaChanel; } } } this.Running = true; this.Delaying = this.Delay > 0; if (NoDuration) { StartCoroutine("updateNoDuration"); } else { StartCoroutine("updateColor"); } }
private void HandleRadialIndicator(float Radius, tk2dBaseSprite Psprite) { Psprite = m_owner.sprite; if (!this.m_indicator) { Vector3 position = Psprite.WorldCenter.ToVector3ZisY(0f); this.m_indicator = ((GameObject)UnityEngine.Object.Instantiate(ResourceCache.Acquire("Global VFX/HeatIndicator"), position, Quaternion.identity, m_owner.sprite.transform)).GetComponent <HeatIndicatorController>(); this.m_indicator.CurrentRadius = TRadius; m_indicator.IsFire = false; m_indicator.CurrentColor = new Color(10 / 25, 152 / 25, 216 / 25); } }
private void HandleSpriteChanged(tk2dBaseSprite spr) { tk2dSpriteDefinition currentSprite = spr.CurrentSprite; int num = Mathf.Max(currentSprite.attachPoints.Length, this.attachPoints.Count); if (num > attachPointUpdated.Length) { attachPointUpdated = new bool[num]; } foreach (tk2dSpriteDefinition.AttachPoint point in currentSprite.attachPoints) { bool flag = false; int index = 0; foreach (Transform transform in this.attachPoints) { if ((transform != null) && (transform.name == point.name)) { attachPointUpdated[index] = true; this.UpdateAttachPointTransform(point, transform); flag = true; } index++; } if (!flag) { GameObject obj2 = new GameObject(point.name); Transform t = obj2.transform; t.parent = base.transform; this.UpdateAttachPointTransform(point, t); attachPointUpdated[this.attachPoints.Count] = true; this.attachPoints.Add(t); } } if (this.deactivateUnusedAttachPoints) { for (int i = 0; i < this.attachPoints.Count; i++) { if (this.attachPoints[i] != null) { GameObject gameObject = this.attachPoints[i].gameObject; if (attachPointUpdated[i] && !gameObject.activeSelf) { gameObject.SetActive(true); } else if (!attachPointUpdated[i] && gameObject.activeSelf) { gameObject.SetActive(false); } } attachPointUpdated[i] = false; } } }
public static tk2dSpriteCollectionData HandleAnimations2(tk2dBaseSprite sprite, List <Texture2D> playerSheet) { tk2dSpriteCollectionData orig = sprite.Collection; var copyCollection = GameObject.Instantiate(orig); GameObject.DontDestroyOnLoad(copyCollection); tk2dSpriteDefinition[] copyDefinitions = new tk2dSpriteDefinition[orig.spriteDefinitions.Length]; for (int i = 0; i < copyCollection.spriteDefinitions.Length; i++) { copyDefinitions[i] = Copy(orig.spriteDefinitions[i]); } copyCollection.spriteDefinitions = copyDefinitions; { RuntimeAtlasPage page = new RuntimeAtlasPage(); for (int i = 0; i < playerSheet.Count; i++) { var tex = playerSheet[i]; float nw = (tex.width) / 16f; float nh = (tex.height) / 16f; var def = copyCollection.GetSpriteDefinition(tex.name); if (def != null) { if (def.boundsDataCenter != Vector3.zero) { var ras = page.Pack(tex); def.materialInst.mainTexture = ras.texture; def.uvs = ras.uvs; def.extractRegion = true; def.position0 = new Vector3(0, 0, 0); def.position1 = new Vector3(nw, 0, 0); def.position2 = new Vector3(0, nh, 0); def.position3 = new Vector3(nw, nh, 0); def.boundsDataCenter = new Vector2(nw / 2, nh / 2); def.untrimmedBoundsDataCenter = def.boundsDataCenter; def.boundsDataExtents = new Vector2(nw, nh); def.untrimmedBoundsDataExtents = def.boundsDataExtents; } else { def.ReplaceTexture(tex); } } } page.Apply(); } return(copyCollection); }
// Use this for initialization void Start() { if (_childSpriteForScale != null) { _childSpriteDefaultScale = _childSpriteForScale.scale; } if (viewCamera == null) { // Find a camera parent Transform node = transform; while (node && node.camera == null) { node = node.parent; } if (node && node.camera != null) { viewCamera = node.camera; } // See if a tk2dCamera exists if (viewCamera == null && tk2dCamera.inst) { viewCamera = tk2dCamera.inst.mainCamera; } // ...otherwise, use the main camera if (viewCamera == null) { viewCamera = Camera.main; } } sprite = GetComponent <tk2dBaseSprite>(); // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient if (sprite) { // Change this to use animated sprites if necessary // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx UpdateSpriteIds(); } if (collider == null) { //Debug.Log("creating collider on " + gameObject.name); BoxCollider newCollider = gameObject.AddComponent <BoxCollider>(); Vector3 colliderExtents = newCollider.extents; colliderExtents.z = 0.2f; newCollider.extents = colliderExtents; } }
protected override void OnDestroy() { if ((PickupObjectDatabase.GetById(565) as PlayerOrbitalItem).BreakVFX && this.sprite != null) { for (int i = 0; i < 5; i++) { SpawnManager.SpawnVFX((PickupObjectDatabase.GetById(565) as PlayerOrbitalItem).BreakVFX, this.sprite.WorldCenter.ToVector3ZisY(0f), Quaternion.identity); } tk2dBaseSprite sprite = SpawnManager.SpawnVFX((PickupObjectDatabase.GetById(538) as SilverBulletsPassiveItem).SynergyPowerVFX, this.sprite.WorldCenter.ToVector3ZisY(0f), Quaternion.identity).GetComponent <tk2dBaseSprite>(); sprite.PlaceAtPositionByAnchor(this.sprite.WorldCenter.ToVector3ZisY(0f), tk2dBaseSprite.Anchor.MiddleCenter); } base.OnDestroy(); }
public static void SetArrowIcon(this tk2dBaseSprite spriteTarget, bool bUp) { if (bUp) { spriteTarget.SetSprite(string.Concat("c_icon_2")); spriteTarget.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 0)); } else { spriteTarget.SetSprite(string.Concat("c_icon_1")); spriteTarget.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 180)); } }
// Use this for initialization void Start() { sprite = GetComponent <tk2dBaseSprite>(); textMesh = GetComponent <tk2dTextMesh>(); if (sprite != null) { color = sprite.color; } if (textMesh != null) { color = textMesh.color; } }
public static void ChangeAllSpritesColor(float percentage, List <tk2dBaseSprite> exclude) { var sprites = GameObject.FindObjectsOfType(typeof(tk2dBaseSprite)); foreach (var sp in sprites) { tk2dBaseSprite sprite = (tk2dBaseSprite)sp; if (exclude == null || !exclude.Contains(sprite)) { NewbieCommonHelper.ChangeSpriteColor(sprite, percentage); } } }
// Use this for initialization void Start() { if (viewCamera == null) { // Find a camera parent Transform node = transform; while (node && node.camera == null) { node = node.parent; } if (node && node.camera != null) { viewCamera = node.camera; } // ...otherwise, use the main camera if (viewCamera == null) { viewCamera = Camera.main; } } sprite = GetComponent <tk2dBaseSprite>(); // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient if (sprite) { // Change this to use animated sprites if necessary // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx if (buttonDownSprite.Length > 0) { buttonDownSpriteId = sprite.GetSpriteIdByName(buttonDownSprite); } if (buttonUpSprite.Length > 0) { buttonUpSpriteId = sprite.GetSpriteIdByName(buttonUpSprite); } if (buttonPressedSprite.Length > 0) { buttonPressedSpriteId = sprite.GetSpriteIdByName(buttonPressedSprite); } } if (collider == null) { BoxCollider newCollider = gameObject.AddComponent <BoxCollider>(); Vector3 colliderExtents = newCollider.extents; colliderExtents.z = 0.2f; newCollider.extents = colliderExtents; } }
static void ConvertSpriteType(GameObject go, System.Type targetType) { tk2dBaseSprite spr = go.GetComponent <tk2dBaseSprite>(); System.Type sourceType = spr.GetType(); if (sourceType != targetType) { tk2dBatchedSprite batchedSprite = new tk2dBatchedSprite(); tk2dStaticSpriteBatcherEditor.FillBatchedSprite(batchedSprite, go); if (targetType == typeof(tk2dSprite)) { batchedSprite.type = tk2dBatchedSprite.Type.Sprite; } else if (targetType == typeof(tk2dTiledSprite)) { batchedSprite.type = tk2dBatchedSprite.Type.TiledSprite; } else if (targetType == typeof(tk2dSlicedSprite)) { batchedSprite.type = tk2dBatchedSprite.Type.SlicedSprite; } else if (targetType == typeof(tk2dClippedSprite)) { batchedSprite.type = tk2dBatchedSprite.Type.ClippedSprite; } Object.DestroyImmediate(spr, true); bool sourceHasDimensions = sourceType == typeof(tk2dSlicedSprite) || sourceType == typeof(tk2dTiledSprite); bool targetHasDimensions = targetType == typeof(tk2dSlicedSprite) || targetType == typeof(tk2dTiledSprite); // Some minor fixups if (!sourceHasDimensions && targetHasDimensions) { batchedSprite.Dimensions = new Vector2(100, 100); } if (targetType == typeof(tk2dClippedSprite)) { batchedSprite.ClippedSpriteRegionBottomLeft = Vector2.zero; batchedSprite.ClippedSpriteRegionTopRight = Vector2.one; } if (targetType == typeof(tk2dSlicedSprite)) { batchedSprite.SlicedSpriteBorderBottomLeft = new Vector2(0.1f, 0.1f); batchedSprite.SlicedSpriteBorderTopRight = new Vector2(0.1f, 0.1f); } tk2dStaticSpriteBatcherEditor.RestoreBatchedSprite(go, batchedSprite); } }
void Awake() { if (anim == null) { anim = GetComponent <tk2dSpriteAnimator>(); } if (spr == null) { spr = GetComponent <tk2dBaseSprite>(); } mDoUpdate = new WaitForFixedUpdate(); }
public void ShootMissile() { Vector3 pt = seekerPt.position; pt.z = 0.0f; Vector3 dir = bodySpriteCtrl.anim.Sprite.FlipX ? -seekerPt.up : seekerPt.up; Projectile proj = Projectile.Create(projGroup, seekerProjType, pt, dir, mPlayer.transform); if (proj) { proj.stats.itemDropIndex = -1; tk2dBaseSprite spr = proj.GetComponentInChildren <tk2dBaseSprite>(); spr.FlipY = bodySpriteCtrl.anim.Sprite.FlipX; } }
protected override void DoEffect(PlayerController user) { if (this.hasTriggeredVFX != true) { teleportObject = UnityEngine.Object.Instantiate <GameObject>(PhaseShifterStopwatch.TeleportIcon, user.sprite.WorldCenter, Quaternion.identity); tk2dBaseSprite vfxSprite = teleportObject.GetComponent <tk2dBaseSprite>(); vfxSprite.sprite.usesOverrideMaterial = true; vfxSprite.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/Internal/HologramShader"); base.StartCoroutine(ItemBuilder.HandleDuration(this, this.duration, user, new Action <PlayerController>(this.EndEffect))); this.health = user.healthHaver.GetCurrentHealth(); this.armor = user.healthHaver.Armor; this.hasTriggeredVFX = true; } }
private void UpdatePlayerPosition(tk2dBaseSprite obj) { if (obj) { Transform transform = m_aiActor.transform.Find("carry"); PlayerController m_owner = m_aiActor.CompanionOwner; if (transform) { Vector2 v = transform.position.XY() + (m_owner.transform.position.XY() - m_owner.sprite.WorldBottomCenter) + new Vector2(0f, -0.125f); m_owner.transform.position = v; m_owner.specRigidbody.Reinitialize(); } } }
public static void Notify(string header, string text, tk2dBaseSprite sprite = null) { tk2dBaseSprite notificationObjectSprite; if (sprite == null) { notificationObjectSprite = GameUIRoot.Instance.notificationController.notificationObjectSprite; } else { notificationObjectSprite = sprite; } GameUIRoot.Instance.notificationController.DoCustomNotification(header, text, notificationObjectSprite.Collection, notificationObjectSprite.spriteId, UINotificationController.NotificationColor.PURPLE, false, false); }
void Start() { lifeTimeCounter = LifeTime; transparent = new Color(1, 1, 1, 0); sprite = gameObject.GetComponent<tk2dBaseSprite>(); this.tag = "bullet"; dir = Vector3.up; dir = dir * Time.smoothDeltaTime * speed; thisTransform = this.transform; thisTransform.eulerAngles = new Vector3(90, thisTransform.eulerAngles.y, thisTransform.eulerAngles.z); }
public void SetAsSelected(bool value) { this.isSelected = value; this.button = base.GetComponent<tk2dButton>(); this.sprite = base.GetComponent<tk2dBaseSprite>(); this.selectedSprite.gameObject.SetActive(this.isSelected); if (this.sprite != null) { this.sprite.enabled = !this.isSelected; } if (this.button != null) { this.button.enabled = !value; } }
public static Vector2 GetAnchorOffset( tk2dBaseSprite.Anchor anchor, float width, float height ) { Vector2 anchorOffset = Vector2.zero; switch (anchor) { case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.UpperLeft: break; case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.UpperCenter: anchorOffset.x = (int)(width / 2.0f); break; case tk2dBaseSprite.Anchor.LowerRight: case tk2dBaseSprite.Anchor.MiddleRight: case tk2dBaseSprite.Anchor.UpperRight: anchorOffset.x = (int)(width); break; } switch (anchor) { case tk2dBaseSprite.Anchor.UpperLeft: case tk2dBaseSprite.Anchor.UpperCenter: case tk2dBaseSprite.Anchor.UpperRight: break; case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.MiddleRight: anchorOffset.y = (int)(height / 2.0f); break; case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.LowerRight: anchorOffset.y = (int)height; break; } return anchorOffset; }
public static Vector2 GetAnchorOffset(tk2dBaseSprite.Anchor anchor, float width, float height) { Vector2 zero = Vector2.zero; switch (anchor) { case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.UpperCenter: zero.x = (int) (width / 2f); break; case tk2dBaseSprite.Anchor.LowerRight: case tk2dBaseSprite.Anchor.MiddleRight: case tk2dBaseSprite.Anchor.UpperRight: zero.x = (int) width; break; } switch (anchor) { case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.LowerRight: zero.y = (int) height; return zero; case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.MiddleRight: zero.y = (int) (height / 2f); return zero; case tk2dBaseSprite.Anchor.UpperLeft: case tk2dBaseSprite.Anchor.UpperCenter: case tk2dBaseSprite.Anchor.UpperRight: return zero; } return zero; }
private void DoDemoTexturePacker(tk2dSpriteCollectionSize spriteCollectionSize) { if (GUILayout.Button("Import", new GUILayoutOption[0])) { this.DestroyData(); this.spriteCollectionInstance = tk2dSpriteCollectionData.CreateFromTexturePacker(spriteCollectionSize, this.texturePackerExportFile.text, this.texturePackerTexture); GameObject obj2 = new GameObject("sprite"); obj2.transform.localPosition = new Vector3(-1f, 0f, 0f); this.spriteInstance = obj2.AddComponent<tk2dSprite>(); this.spriteInstance.SetSprite(this.spriteCollectionInstance, "sun"); obj2 = new GameObject("sprite2"); obj2.transform.parent = this.spriteInstance.transform; obj2.transform.localPosition = new Vector3(2f, 0f, 0f); obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "2dtoolkit_logo"); obj2 = new GameObject("sprite3"); obj2.transform.parent = this.spriteInstance.transform; obj2.transform.localPosition = new Vector3(1f, 1f, 0f); obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "button_up"); obj2 = new GameObject("sprite4"); obj2.transform.parent = this.spriteInstance.transform; obj2.transform.localPosition = new Vector3(1f, -1f, 0f); obj2.AddComponent<tk2dSprite>().SetSprite(this.spriteCollectionInstance, "Rock"); } }
void Start() { transparent = new Color(1, 1, 1, 0); sprite = gameObject.GetComponent<tk2dBaseSprite>(); }
static string GetAnchorPointName( tk2dBaseSprite.Anchor anchor ) { return "Anchor (" + anchor.ToString() + ")"; }
protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite) { var newCollection = tk2dSpriteGuiUtility.SpriteCollectionPopup("Collection", sprite.Collection, true, sprite.spriteId); if (sprite.Collection != newCollection) { if (sprite.Collection == null) sprite.Collection = newCollection; int spriteId = sprite.spriteId; if (sprite.spriteId < 0 || sprite.spriteId >= sprite.Collection.Count || !sprite.Collection.inst.spriteDefinitions[sprite.spriteId].Valid) spriteId = sprite.Collection.FirstValidDefinitionIndex; sprite.SwitchCollectionAndSprite(newCollection, spriteId); sprite.ForceBuild(); } if (sprite.Collection) { int newSpriteId = sprite.spriteId; // sanity check sprite id if (sprite.spriteId < 0 || sprite.spriteId >= sprite.Collection.Count || !sprite.Collection.inst.spriteDefinitions[sprite.spriteId].Valid) { newSpriteId = sprite.Collection.inst.FirstValidDefinitionIndex; } newSpriteId = tk2dSpriteGuiUtility.SpriteSelectorPopup("Sprite", sprite.spriteId, sprite.Collection); if (tk2dPreferences.inst.displayTextureThumbs) { tk2dSpriteDefinition def = sprite.GetCurrentSpriteDef(); if (sprite.Collection.version < 1 || def.texelSize == Vector2.zero) { string message = ""; message = "No thumbnail data."; if (sprite.Collection.version < 1) message += "\nPlease rebuild Sprite Collection."; tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info); } else { GUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(" "); Vector2 texSize = thumbnailCache.GetSpriteSizePixels(def); float w = texSize.x; float h = texSize.y; float maxSize = 128.0f; if (w > maxSize) { h = h / w * maxSize; w = maxSize; } Rect r = GUILayoutUtility.GetRect(w, h, GUILayout.ExpandWidth(false)); thumbnailCache.DrawSpriteTexture(r, def); GUILayout.EndHorizontal(); } } if (newSpriteId != sprite.spriteId) { sprite.spriteId = newSpriteId; sprite.EditMode__CreateCollider(); GUI.changed = true; } sprite.color = EditorGUILayout.ColorField("Color", sprite.color); Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale); if (newScale != sprite.scale) { sprite.scale = newScale; sprite.EditMode__CreateCollider(); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("HFlip")) { Vector3 s = sprite.scale; s.x *= -1.0f; sprite.scale = s; GUI.changed = true; } if (GUILayout.Button("VFlip")) { Vector3 s = sprite.scale; s.y *= -1.0f; sprite.scale = s; GUI.changed = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1"))) { Vector3 s = sprite.scale; s.x = Mathf.Sign(s.x); s.y = Mathf.Sign(s.y); s.z = Mathf.Sign(s.z); sprite.scale = s; GUI.changed = true; } if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite"))) { tk2dScaleUtility.Bake(sprite.transform); GUI.changed = true; } GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect"); if ( GUILayout.Button(pixelPerfectButton )) { if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup(); sprite.MakePixelPerfect(); GUI.changed = true; } sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f)); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1); } bool needUpdatePrefabs = false; if (GUI.changed) { EditorUtility.SetDirty(sprite); #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4) if (PrefabUtility.GetPrefabType(sprite) == PrefabType.Prefab) needUpdatePrefabs = true; #endif } // This is a prefab, and changes need to be propagated. This isn't supported in Unity 3.4 if (needUpdatePrefabs) { #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4) // Rebuild prefab instances tk2dBaseSprite[] allSprites = Resources.FindObjectsOfTypeAll(sprite.GetType()) as tk2dBaseSprite[]; foreach (var spr in allSprites) { if (PrefabUtility.GetPrefabType(spr) == PrefabType.PrefabInstance && PrefabUtility.GetPrefabParent(spr.gameObject) == sprite.gameObject) { // Reset all prefab states var propMod = PrefabUtility.GetPropertyModifications(spr); PrefabUtility.ResetToPrefabState(spr); PrefabUtility.SetPropertyModifications(spr, propMod); spr.ForceBuild(); } } #endif } }
protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite) { Event ev = Event.current; tk2dSpriteGuiUtility.SpriteSelector( sprite.Collection, sprite.spriteId, spriteChangedCallbackInstance, null ); if (sprite.Collection != null) { if (tk2dPreferences.inst.displayTextureThumbs) { tk2dSpriteDefinition def = sprite.GetCurrentSpriteDef(); if (sprite.Collection.version < 1 || def.texelSize == Vector2.zero) { string message = ""; message = "No thumbnail data."; if (sprite.Collection.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); thumbnailCache.DrawSpriteTextureInRect(r, def, Color.white); GUILayout.EndHorizontal(); r = GUILayoutUtility.GetLastRect(); if (ev.type == EventType.MouseDown && ev.button == 0 && r.Contains(ev.mousePosition)) { tk2dSpriteGuiUtility.SpriteSelectorPopup( sprite.Collection, sprite.spriteId, spriteChangedCallbackInstance, null ); } } } sprite.color = EditorGUILayout.ColorField("Color", sprite.color); Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale); if (newScale != sprite.scale) { sprite.scale = newScale; sprite.EditMode__CreateCollider(); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("HFlip")) { Vector3 s = sprite.scale; s.x *= -1.0f; sprite.scale = s; GUI.changed = true; } if (GUILayout.Button("VFlip")) { Vector3 s = sprite.scale; s.y *= -1.0f; sprite.scale = s; GUI.changed = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1"))) { Vector3 s = sprite.scale; s.x = Mathf.Sign(s.x); s.y = Mathf.Sign(s.y); s.z = Mathf.Sign(s.z); sprite.scale = s; GUI.changed = true; } if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite"))) { tk2dScaleUtility.Bake(sprite.transform); GUI.changed = true; } GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect"); if ( GUILayout.Button(pixelPerfectButton )) { if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup(); sprite.MakePixelPerfect(); GUI.changed = true; } sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f)); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1); } bool needUpdatePrefabs = false; if (GUI.changed) { EditorUtility.SetDirty(sprite); #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4) if (PrefabUtility.GetPrefabType(sprite) == PrefabType.Prefab) needUpdatePrefabs = true; #endif } // This is a prefab, and changes need to be propagated. This isn't supported in Unity 3.4 if (needUpdatePrefabs) { #if !(UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4) // Rebuild prefab instances tk2dBaseSprite[] allSprites = Resources.FindObjectsOfTypeAll(sprite.GetType()) as tk2dBaseSprite[]; foreach (var spr in allSprites) { if (PrefabUtility.GetPrefabType(spr) == PrefabType.PrefabInstance && PrefabUtility.GetPrefabParent(spr.gameObject) == sprite.gameObject) { // Reset all prefab states var propMod = PrefabUtility.GetPropertyModifications(spr); PrefabUtility.ResetToPrefabState(spr); PrefabUtility.SetPropertyModifications(spr, propMod); spr.ForceBuild(); } } #endif } }
public static List<int> getAnchorHidePtList(tk2dBaseSprite.Anchor anchor, Rect r, Transform t) { List<int> hidePts = new List<int>(); int x = 0; int y = 0; switch (anchor) { case tk2dBaseSprite.Anchor.LowerLeft: x = -1; y = -1; break; case tk2dBaseSprite.Anchor.LowerRight: x = 1; y = -1; break; case tk2dBaseSprite.Anchor.UpperLeft: x = -1; y = 1; break; case tk2dBaseSprite.Anchor.UpperRight: x = 1; y = 1; break; } if (r.width < 0.0f) x = -x; if (r.height < 0.0f) y = -y; if (t.localScale.x < 0.0f) x = -x; if (t.localScale.y < 0.0f) y = -y; if (x == -1 && y == -1) hidePts.Add (0); if (x == 1 && y == -1) hidePts.Add (1); if (x == -1 && y == 1) hidePts.Add (2); if (x == 1 && y == 1) hidePts.Add (3); return hidePts; }
// Rect origin as offset from Anchor public static Vector2 GetAnchorOffset( Vector2 rectSize, tk2dBaseSprite.Anchor anchor ) { Vector2 anchorOffset = Vector3.zero; switch (anchor) { case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.UpperLeft: break; case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.UpperCenter: anchorOffset.x = -(rectSize.x / 2.0f); break; case tk2dBaseSprite.Anchor.LowerRight: case tk2dBaseSprite.Anchor.MiddleRight: case tk2dBaseSprite.Anchor.UpperRight: anchorOffset.x = -(rectSize.x); break; } switch (anchor) { case tk2dBaseSprite.Anchor.LowerLeft: case tk2dBaseSprite.Anchor.LowerCenter: case tk2dBaseSprite.Anchor.LowerRight: break; case tk2dBaseSprite.Anchor.MiddleLeft: case tk2dBaseSprite.Anchor.MiddleCenter: case tk2dBaseSprite.Anchor.MiddleRight: anchorOffset.y = -(rectSize.y / 2.0f); break; case tk2dBaseSprite.Anchor.UpperLeft: case tk2dBaseSprite.Anchor.UpperCenter: case tk2dBaseSprite.Anchor.UpperRight: anchorOffset.y = -(rectSize.y); break; } return anchorOffset; }
protected virtual void Awake() { mSprite = GetComponent<tk2dBaseSprite>(); mSpriteAnim = mSprite as tk2dAnimatedSprite; }
protected void DrawSpriteEditorGUI(tk2dBaseSprite sprite) { var newCollection = tk2dSpriteGuiUtility.SpriteCollectionPopup("Collection", sprite.collection, true, sprite.spriteId); if (sprite.collection != newCollection) { if (sprite.collection == null) sprite.collection = newCollection; int spriteId = sprite.spriteId; if (sprite.spriteId < 0 || sprite.spriteId >= sprite.collection.Count || !sprite.collection.spriteDefinitions[sprite.spriteId].Valid) spriteId = sprite.collection.FirstValidDefinitionIndex; sprite.SwitchCollectionAndSprite(newCollection, spriteId); sprite.ForceBuild(); } if (sprite.collection) { int newSpriteId = sprite.spriteId; // sanity check sprite id if (sprite.spriteId < 0 || sprite.spriteId >= sprite.collection.Count || !sprite.collection.spriteDefinitions[sprite.spriteId].Valid) { newSpriteId = sprite.collection.FirstValidDefinitionIndex; } newSpriteId = tk2dSpriteGuiUtility.SpriteSelectorPopup("Sprite", sprite.spriteId, sprite.collection); if (tk2dPreferences.inst.displayTextureThumbs) { if (sprite.collection.version < 1 || sprite.collection.dataGuid == tk2dSpriteGuiUtility.TransientGUID) { string message = ""; message = "No thumbnail data."; if (sprite.collection.version < 1 && sprite.collection.dataGuid != tk2dSpriteGuiUtility.TransientGUID) message += "\nPlease rebuild Sprite Collection."; tk2dGuiUtility.InfoBox(message, tk2dGuiUtility.WarningLevel.Info); } else { var tex = tk2dSpriteThumbnailCache.GetThumbnailTexture(sprite.collection, sprite.spriteId); if (tex) { float w = tex.width; float h = tex.height; float maxSize = 128.0f; if (w > maxSize) { h = h / w * maxSize; w = maxSize; } Rect r = GUILayoutUtility.GetRect(w, h); GUI.DrawTexture(r, tex, ScaleMode.ScaleToFit); } } } if (newSpriteId != sprite.spriteId) { sprite.spriteId = newSpriteId; sprite.EditMode__CreateCollider(); GUI.changed = true; } sprite.color = EditorGUILayout.ColorField("Color", sprite.color); Vector3 newScale = EditorGUILayout.Vector3Field("Scale", sprite.scale); if (newScale != sprite.scale) { sprite.scale = newScale; sprite.EditMode__CreateCollider(); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("HFlip")) { Vector3 s = sprite.scale; s.x *= -1.0f; sprite.scale = s; GUI.changed = true; } if (GUILayout.Button("VFlip")) { Vector3 s = sprite.scale; s.y *= -1.0f; sprite.scale = s; GUI.changed = true; } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Reset Scale", "Set scale to 1"))) { Vector3 s = sprite.scale; s.x = Mathf.Sign(s.x); s.y = Mathf.Sign(s.y); s.z = Mathf.Sign(s.z); sprite.scale = s; GUI.changed = true; } if (GUILayout.Button(new GUIContent("Bake Scale", "Transfer scale from transform.scale -> sprite"))) { tk2dScaleUtility.Bake(sprite.transform); GUI.changed = true; } GUIContent pixelPerfectButton = new GUIContent("1:1", "Make Pixel Perfect"); if ( GUILayout.Button(pixelPerfectButton )) { if (tk2dPixelPerfectHelper.inst) tk2dPixelPerfectHelper.inst.Setup(); sprite.MakePixelPerfect(); GUI.changed = true; } sprite.pixelPerfect = GUILayout.Toggle(sprite.pixelPerfect, new GUIContent("Always", "Always keep pixel perfect"), GUILayout.Width(60.0f)); EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.IntSlider("Need a collection bound", 0, 0, 1); } if (GUI.changed) EditorUtility.SetDirty(sprite); }
// Use this for initialization void Start () { if (viewCamera == null) { // Find a camera parent Transform node = transform; while (node && node.camera == null) { node = node.parent; } if (node && node.camera != null) { viewCamera = node.camera; } // See if a tk2dCamera exists if (viewCamera == null && tk2dCamera.Instance) { viewCamera = tk2dCamera.Instance.camera; } // ...otherwise, use the main camera if (viewCamera == null) { viewCamera = Camera.main; } } sprite = GetComponent<tk2dBaseSprite>(); // Further tests for sprite not being null aren't necessary, as the IDs will default to -1 in that case. Testing them will be sufficient if (sprite) { // Change this to use animated sprites if necessary // Same concept here, lookup Ids and call Play(xxx) instead of .spriteId = xxx UpdateSpriteIds(); } if (collider == null) { BoxCollider newCollider = gameObject.AddComponent<BoxCollider>(); Vector3 colliderSize = newCollider.size; colliderSize.z = 0.2f; newCollider.size = colliderSize; } if ((buttonDownSound != null || buttonPressedSound != null || buttonUpSound != null) && audio == null) { AudioSource audioSource = gameObject.AddComponent<AudioSource>(); audioSource.playOnAwake = false; } }