public override void PostBeamRender(tk2dTiledSprite beam) { Material material = beam.GetComponent <Renderer>().material; material.SetFloat("_BlackBullet", 0.995f); material.SetFloat("_EmissiveColorPower", 4.9f); }
void Update() { if (projectile) { Vector2 position = projectile.specRigidbody.UnitCenter; Vector2 direction = projectile.LastVelocity.normalized; int thePointOfTheMaskIs = CollisionMask.LayerToMask(CollisionLayer.HighObstacle, CollisionLayer.BulletBlocker, CollisionLayer.EnemyHitBox, CollisionLayer.BulletBreakable); PhysicsEngine.Instance.Raycast(position, direction, 100f, out RaycastResult result, true, true, thePointOfTheMaskIs); if (result != null && result.Contact != null) { tk2dTiledSprite component = SpawnManager.SpawnVFX(linkVFXPrefab, false).GetComponent <tk2dTiledSprite>(); PostBeamRender(component); Vector2 unitCenter = position; Vector2 unitCenter2 = result.Contact; component.transform.position = unitCenter; Vector2 vector = unitCenter2 - unitCenter; float num = BraveMathCollege.Atan2Degrees(vector.normalized); int num2 = Mathf.RoundToInt(vector.magnitude / 0.0625f); component.dimensions = new Vector2((float)num2, component.dimensions.y); component.transform.rotation = Quaternion.Euler(0f, 0f, num); component.UpdateZDepth(); ETGMod.StartGlobalCoroutine(doTimerMagic(component.gameObject, wait)); OnBeamHit(result.Contact, projectile); } projectile.DieInAir(); } }
// This is used by other parts of code public static void RestoreBatchedSprite(GameObject go, tk2dBatchedSprite bs) { tk2dBaseSprite baseSprite = null; switch (bs.type) { case tk2dBatchedSprite.Type.EmptyGameObject: { break; } case tk2dBatchedSprite.Type.Sprite: { tk2dSprite s = tk2dBaseSprite.AddComponent <tk2dSprite>(go, bs.spriteCollection, bs.spriteId); baseSprite = s; break; } case tk2dBatchedSprite.Type.TiledSprite: { tk2dTiledSprite s = tk2dBaseSprite.AddComponent <tk2dTiledSprite>(go, bs.spriteCollection, bs.spriteId); baseSprite = s; s.dimensions = bs.Dimensions; s.anchor = bs.anchor; s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider); RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ); break; } case tk2dBatchedSprite.Type.SlicedSprite: { tk2dSlicedSprite s = tk2dBaseSprite.AddComponent <tk2dSlicedSprite>(go, bs.spriteCollection, bs.spriteId); baseSprite = s; s.dimensions = bs.Dimensions; s.anchor = bs.anchor; s.BorderOnly = bs.CheckFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly); s.SetBorder(bs.SlicedSpriteBorderBottomLeft.x, bs.SlicedSpriteBorderBottomLeft.y, bs.SlicedSpriteBorderTopRight.x, bs.SlicedSpriteBorderTopRight.y); s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider); RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ); break; } case tk2dBatchedSprite.Type.ClippedSprite: { tk2dClippedSprite s = tk2dBaseSprite.AddComponent <tk2dClippedSprite>(go, bs.spriteCollection, bs.spriteId); baseSprite = s; s.clipBottomLeft = bs.ClippedSpriteRegionBottomLeft; s.clipTopRight = bs.ClippedSpriteRegionTopRight; s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider); RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ); break; } } baseSprite.scale = bs.baseScale; baseSprite.color = bs.color; }
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 !STRIP_PHYSICS_3D if (baseSprite.boxCollider != null) { bs.BoxColliderOffsetZ = baseSprite.boxCollider.center.z; bs.BoxColliderExtentZ = baseSprite.boxCollider.size.z * 0.5f; } else #endif { 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); } }
static void DoCreateSlicedSpriteObject() { tk2dSpriteGuiUtility.GetSpriteCollectionAndCreate((sprColl) => { GameObject go = tk2dEditorUtility.CreateGameObjectInScene("Tiled Sprite"); tk2dTiledSprite sprite = go.AddComponent <tk2dTiledSprite>(); sprite.SetSprite(sprColl, sprColl.FirstValidDefinitionIndex); sprite.Build(); Selection.activeGameObject = go; Undo.RegisterCreatedObjectUndo(go, "Create Tiled Sprite"); }); }
// Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254 public void Interact(PlayerController interactor) { PrismaticGuonStone.cooldownBehavior cooldownBehavior = interactor.GetComponent <PrismaticGuonStone.cooldownBehavior>(); Projectile projectile = (PickupObjectDatabase.GetById(508) as Gun).DefaultModule.projectiles[0]; if (projectile.GetComponentInChildren <tk2dTiledSprite>() != null) { projectile.GetComponentInChildren <tk2dTiledSprite>().usesOverrideMaterial = true; if (interactor.PlayerHasActiveSynergy("Prismatismer Guon Stone")) { projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader"); ETGModConsole.Log(projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.HasProperty("_EmissivePower").ToString()); projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.SetFloat("_HueTestValue", 0); } else { tk2dTiledSprite baseSprite = projectile.GetComponentInChildren <tk2dTiledSprite>(); baseSprite.OverrideMaterialMode = tk2dBaseSprite.SpriteMaterialOverrideMode.OVERRIDE_MATERIAL_SIMPLE; Material material = baseSprite.renderer.material; float value = 0f; float value2 = 0f; value = material.GetFloat("_EmissivePower"); value2 = material.GetFloat("_EmissiveColorPower"); Shader shader; shader = ShaderCache.Acquire("Brave/LitTk2dCustomFalloffTintableTiltedCutoutEmissive"); if (baseSprite.renderer.material.shader != shader) { baseSprite.renderer.material.shader = shader; baseSprite.renderer.material.EnableKeyword("BRIGHTNESS_CLAMP_ON"); baseSprite.renderer.material.SetFloat("_EmissivePower", value); baseSprite.renderer.material.SetFloat("_EmissiveColorPower", value2); } baseSprite.renderer.sharedMaterial.SetColor("_OverrideColor", this.outColors[colorCount % 6]); colorCount++; } } float angle = base.transform.rotation.eulerAngles.z; GameObject obj1 = SpawnManager.SpawnProjectile(projectile.gameObject, base.specRigidbody.transform.localPosition.XY(), Quaternion.Euler(0f, 0f, (interactor.CurrentGun == null) ? 0f : angle), true); Projectile proj1 = obj1.GetComponent <Projectile>(); proj1.Owner = interactor; proj1.Shooter = interactor.specRigidbody; if (interactor.PlayerHasActiveSynergy("Prismatismer Guon Stone")) { proj1.baseData.damage = 75f; } else { proj1.baseData.damage = 50f; } cooldownBehavior.parentItem.beamCooldown = 0f; }
public void DestroyWall() { tk2dTileMapDemoFollowCam cam = Camera.main.GetComponent <tk2dTileMapDemoFollowCam> (); CameraShake shake = Camera.main.GetComponent <CameraShake> (); cameraControlId = cam.RequestControl(tk2dTileMapDemoFollowCam.CameraControlPriority.HIGH, transform); shake.Shake(delay, 0.4f, 0.001f); tk2dTiledSprite sprite = GetComponent <tk2dTiledSprite> (); HOTween.To(sprite, 5f, new TweenParms().Prop("dimensions", finalDimension).OnComplete(this.DestroyWallDone).Delay(delay)); }
private void UpdateLink(PlayerController target, tk2dTiledSprite m_extantLink) { Vector2 unitCenter = base.specRigidbody.UnitCenter; Vector2 unitCenter2 = target.specRigidbody.HitboxPixelCollider.UnitCenter; m_extantLink.transform.position = unitCenter; Vector2 vector = unitCenter2 - unitCenter; float num = BraveMathCollege.Atan2Degrees(vector.normalized); int num2 = Mathf.RoundToInt(vector.magnitude / 0.0625f); m_extantLink.dimensions = new Vector2((float)num2, m_extantLink.dimensions.y); m_extantLink.transform.rotation = Quaternion.Euler(0f, 0f, num); m_extantLink.UpdateZDepth(); this.ApplyLinearDamage(unitCenter, unitCenter2); }
public static BasicBeamController GenerateBeamPrefab(this Projectile projectile, string spritePath) { projectile.gameObject.AddComponent <MeshRenderer>(); projectile.gameObject.AddComponent <MeshFilter>(); tk2dSprite sprite = projectile.GetComponent <tk2dSprite>(); int spriteID = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection); tk2dTiledSprite tiledSprite = projectile.gameObject.AddComponent <tk2dTiledSprite>(); tiledSprite.sprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID); UnityEngine.Object.Destroy(projectile.gameObject.GetComponent <tk2dSprite>()); projectile.gameObject.AddComponent <tk2dSpriteAnimator>(); BasicBeamController beamController = projectile.gameObject.AddComponent <BasicBeamController>(); return(beamController); }
private void Update() { if (m_projectile && electricTarget && this.extantLink == null) { tk2dTiledSprite component = SpawnManager.SpawnVFX(St4ke.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>(); this.extantLink = component; } else if (m_projectile && electricTarget && this.extantLink != null) { UpdateLink(electricTarget, this.extantLink); } else if (extantLink != null) { SpawnManager.Despawn(extantLink.gameObject); extantLink = null; } }
private void Update() { if (this.LinkVFXPrefab == null) { this.LinkVFXPrefab = FakePrefab.Clone(Game.Items["shock_rounds"].GetComponent <ComplexProjectileModifier>().ChainLightningVFX); } if (bolaProjectileA && bolaProjectileB && this.extantLink == null) { tk2dTiledSprite component = SpawnManager.SpawnVFX(this.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>(); this.extantLink = component; } if (bolaProjectileA == null || bolaProjectileB == null) { Uncouple(); m_projectile.DieInAir(); } }
static void DoCreateSlicedSpriteObject() { tk2dSpriteCollectionData sprColl = null; if (sprColl == null) { // try to inherit from other Sprites in scene tk2dSprite spr = GameObject.FindObjectOfType(typeof(tk2dSprite)) as tk2dSprite; if (spr) { sprColl = spr.Collection; } } if (sprColl == null) { tk2dSpriteCollectionIndex[] spriteCollections = tk2dEditorUtility.GetOrCreateIndex().GetSpriteCollectionIndex(); foreach (var v in spriteCollections) { GameObject scgo = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(v.spriteCollectionDataGUID), typeof(GameObject)) as GameObject; var sc = scgo.GetComponent <tk2dSpriteCollectionData>(); if (sc != null && sc.spriteDefinitions != null && sc.spriteDefinitions.Length > 0) { sprColl = sc; break; } } if (sprColl == null) { EditorUtility.DisplayDialog("Create Tiled Sprite", "Unable to create tiled sprite as no SpriteCollections have been found.", "Ok"); return; } } GameObject go = tk2dEditorUtility.CreateGameObjectInScene("Tiled Sprite"); tk2dTiledSprite sprite = go.AddComponent <tk2dTiledSprite>(); sprite.SetSprite(sprColl, sprColl.FirstValidDefinitionIndex); sprite.Build(); Selection.activeGameObject = go; Undo.RegisterCreatedObjectUndo(go, "Create Tiled Sprite"); }
public override void Update() { if (this.LinkVFXPrefab == null) { this.LinkVFXPrefab = FakePrefab.Clone(Game.Items["shock_rounds"].GetComponent <ComplexProjectileModifier>().ChainLightningVFX); } if (this.Owner && this.Owner.IsInCombat && this.extantLink == null) { tk2dTiledSprite component = SpawnManager.SpawnVFX(this.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>(); this.extantLink = component; } else if (this.Owner && this.Owner.IsInCombat && this.extantLink != null) { UpdateLink(this.Owner, this.extantLink); } else if (extantLink != null) { SpawnManager.Despawn(extantLink.gameObject); extantLink = null; } base.Update(); }
public static GameObject RenderLaserSight(Vector2 position, float length, float width, float angle, bool alterColour = false, Color?colour = null) { GameObject gameObject = SpawnManager.SpawnVFX(laserSightPrefab, position, Quaternion.Euler(0, 0, angle)); tk2dTiledSprite component2 = gameObject.GetComponent <tk2dTiledSprite>(); float newWidth = 1f; if (width != -1) { newWidth = width; } component2.dimensions = new Vector2(length, newWidth); if (alterColour && colour != null) { component2.usesOverrideMaterial = true; component2.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/LitTk2dCustomFalloffTintableTiltedCutoutEmissive"); component2.sprite.renderer.material.SetColor("_OverrideColor", (Color)colour); component2.sprite.renderer.material.SetColor("_EmissiveColor", (Color)colour); component2.sprite.renderer.material.SetFloat("_EmissivePower", 100); component2.sprite.renderer.material.SetFloat("_EmissiveColorPower", 1.55f); } return(gameObject); }
void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info) { spriteTorso = GetComponentInChildren <tk2dSprite>(); statsScreen = (StatsScreen)FindObjectOfType(typeof(StatsScreen)); string[] colors = new string[] { "Purple", "Blue", "Red", "Yellow", "Green" }; heroColorName = colors [info.networkView.owner.id % colors.Length]; SetName(info.networkView.owner.id, name); torsoAnim.Play(heroColorName + "_2"); if (!info.networkView.isOwner) { return; } // this.networkView.RPC ("SetName", uLink.RPCMode.Others, info.networkView.owner.id, name); _cameraFollow = GameObject.Find("_Cam").GetComponent <CameraFollow> (); _cameraFollow.playerTransform = this.transform; healthBar = GameObject.Find("HealthBarSliced").GetComponent <tk2dTiledSprite>(); staminaBar = GameObject.Find("StaminaBarSliced").GetComponent <tk2dTiledSprite>(); statsScreen = (StatsScreen)FindObjectOfType(typeof(StatsScreen)); spriteTorso = GetComponentInChildren <tk2dSprite>(); UpdateHealth(); }
public void BuildPatch() { if (m_stripPrefab == null) { m_stripPrefab = (GameObject)BraveResources.Load("Global Prefabs/TallGrassStrip", ".prefab"); } HashSet <IntVector2> hashSet = new HashSet <IntVector2>(); for (int j = 0; j < cells.Count; j++) { IntVector2 intVector = cells[j]; if (!hashSet.Contains(intVector)) { hashSet.Add(intVector); int num = 1; var targetIndexForPosition = GetTargetIndexForPosition(intVector); IntVector2 intVector2 = intVector; while (true) { intVector2 += IntVector2.Right; if (hashSet.Contains(intVector2)) { break; } if (!cells.Contains(intVector2)) { break; } if (targetIndexForPosition != GetTargetIndexForPosition(intVector2)) { break; } num++; hashSet.Add(intVector2); } GameObject grassObject = SpawnManager.SpawnVFX(m_stripPrefab, false); tk2dTiledSprite tiledSprite = grassObject.GetComponent <tk2dTiledSprite>(); tiledSprite.SetSprite(GameManager.Instance.Dungeon.tileIndices.dungeonCollection, (int)targetIndexForPosition); tiledSprite.dimensions = new Vector2((16 * num), 16f); grassObject.transform.position = new Vector3(intVector.x, intVector.y, intVector.y); m_tiledSpritePool.Add(intVector, tiledSprite); switch (targetIndexForPosition) { case IndexPosition.BOTTOM: tiledSprite.HeightOffGround = -2f; tiledSprite.IsPerpendicular = true; tiledSprite.transform.position += new Vector3(0f, 0.6875f, 0f); break; case IndexPosition.TOP: tiledSprite.IsPerpendicular = true; break; default: tiledSprite.IsPerpendicular = false; break; } tiledSprite.UpdateZDepth(); } } if (!ExpandStaticReferenceManager.AllGrasses.Contains(this)) { ExpandStaticReferenceManager.AllGrasses.Add(this); } InitializeParticleSystem(); }
void Awake() { meterSprite = GetComponent <tk2dTiledSprite>(); }
public virtual void PostBeamRender(tk2dTiledSprite beam) { }
public static BasicBeamController GenerateBeamPrefab(this Projectile projectile, string spritePath, Vector2 colliderDimensions, Vector2 colliderOffsets, List <string> beamAnimationPaths = null, int beamFPS = -1, List <string> impactVFXAnimationPaths = null, int beamImpactFPS = -1, Vector2?impactVFXColliderDimensions = null, Vector2?impactVFXColliderOffsets = null, List <string> endVFXAnimationPaths = null, int beamEndFPS = -1, Vector2?endVFXColliderDimensions = null, Vector2?endVFXColliderOffsets = null, List <string> muzzleVFXAnimationPaths = null, int beamMuzzleFPS = -1, Vector2?muzzleVFXColliderDimensions = null, Vector2?muzzleVFXColliderOffsets = null) { try { float convertedColliderX = colliderDimensions.x / 16f; float convertedColliderY = colliderDimensions.y / 16f; float convertedOffsetX = colliderOffsets.x / 16f; float convertedOffsetY = colliderOffsets.y / 16f; int spriteID = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection); tk2dTiledSprite tiledSprite = projectile.gameObject.GetOrAddComponent <tk2dTiledSprite>(); tiledSprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID); tk2dSpriteDefinition def = tiledSprite.GetCurrentSpriteDef(); def.colliderVertices = new Vector3[] { new Vector3(convertedOffsetX, convertedOffsetY, 0f), new Vector3(convertedColliderX, convertedColliderY, 0f) }; def.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft); //tiledSprite.anchor = tk2dBaseSprite.Anchor.MiddleCenter; tk2dSpriteAnimator animator = projectile.gameObject.GetOrAddComponent <tk2dSpriteAnimator>(); tk2dSpriteAnimation animation = projectile.gameObject.GetOrAddComponent <tk2dSpriteAnimation>(); animation.clips = new tk2dSpriteAnimationClip[0]; animator.Library = animation; UnityEngine.Object.Destroy(projectile.GetComponentInChildren <tk2dSprite>()); BasicBeamController beamController = projectile.gameObject.GetOrAddComponent <BasicBeamController>(); //---------------- Sets up the animation for the main part of the beam if (beamAnimationPaths != null) { tk2dSpriteAnimationClip clip = new tk2dSpriteAnimationClip() { name = "beam_idle", frames = new tk2dSpriteAnimationFrame[0], fps = beamFPS }; List <string> spritePaths = beamAnimationPaths; List <tk2dSpriteAnimationFrame> frames = new List <tk2dSpriteAnimationFrame>(); foreach (string path in spritePaths) { tk2dSpriteCollectionData collection = ETGMod.Databases.Items.ProjectileCollection; int frameSpriteId = SpriteBuilder.AddSpriteToCollection(path, collection); tk2dSpriteDefinition frameDef = collection.spriteDefinitions[frameSpriteId]; frameDef.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft); frameDef.colliderVertices = def.colliderVertices; frames.Add(new tk2dSpriteAnimationFrame { spriteId = frameSpriteId, spriteCollection = collection }); } clip.frames = frames.ToArray(); animation.clips = animation.clips.Concat(new tk2dSpriteAnimationClip[] { clip }).ToArray(); beamController.beamAnimation = "beam_idle"; } //------------- Sets up the animation for the part of the beam that touches the wall if (endVFXAnimationPaths != null && endVFXColliderDimensions != null && endVFXColliderOffsets != null) { SetupBeamPart(animation, endVFXAnimationPaths, "beam_end", beamEndFPS, (Vector2)endVFXColliderDimensions, (Vector2)endVFXColliderOffsets); beamController.beamEndAnimation = "beam_end"; } else { SetupBeamPart(animation, beamAnimationPaths, "beam_end", beamFPS, null, null, def.colliderVertices); beamController.beamEndAnimation = "beam_end"; } //---------------Sets up the animaton for the VFX that plays over top of the end of the beam where it hits stuff if (impactVFXAnimationPaths != null && impactVFXColliderDimensions != null && impactVFXColliderOffsets != null) { SetupBeamPart(animation, impactVFXAnimationPaths, "beam_impact", beamImpactFPS, (Vector2)impactVFXColliderDimensions, (Vector2)impactVFXColliderOffsets); beamController.impactAnimation = "beam_impact"; } //--------------Sets up the animation for the very start of the beam if (muzzleVFXAnimationPaths != null && muzzleVFXColliderDimensions != null && muzzleVFXColliderOffsets != null) { SetupBeamPart(animation, muzzleVFXAnimationPaths, "beam_start", beamMuzzleFPS, (Vector2)muzzleVFXColliderDimensions, (Vector2)muzzleVFXColliderOffsets); beamController.beamStartAnimation = "beam_start"; } else { SetupBeamPart(animation, beamAnimationPaths, "beam_start", beamFPS, null, null, def.colliderVertices); beamController.beamStartAnimation = "beam_start"; } return(beamController); } catch (Exception e) { ETGModConsole.Log(e.ToString()); return(null); } }
private void Awake() { mySprite = GetComponent <tk2dTiledSprite>(); }
void Start() { ballCollider = (BoxCollider)GetComponent<BoxCollider>(); sprite = (tk2dTiledSprite)GetComponent<tk2dTiledSprite>(); SetColour(transform.parent.GetComponent<Line>().Colour); collidingObjects = new HashSet<int>(); }
// Update is called once per frame void Update () { #if UNITY_IPHONE int i = 0; if ( Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) { this.mousepos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position); //this.mousepos = Input.GetTouch(i).position; mousepos = new Vector3(mousepos.x, mousepos.y, 0); if (!isClike) { obj = Instantiate(this.pointer, mousepos, Quaternion.identity) as GameObject; text.text = i.ToString() +"@" + this.mousepos.ToString(); isClike = true; } } //if (Input.GetMouseButtonUp(0)) if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended) { isClike = false; } #endif #if UNITY_STANDALONE_WIN ////////////////////////////////////////////////mouse////////////////////////////////////// // if(Input.GetMouseButtonDown(0)) // { // rock.collider.bounds. // Debug.Log("down"); // } if (Input.GetMouseButtonDown(0)) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { GameObject obj; // obj = hit.collider.gameObject.transform.parent.gameObject; // if(obj == null) // { obj = hit.collider.gameObject; Debug.Log(tileMap.data.tileSize); //} rockObj = obj.GetComponent<Rock>(); //取不到值????? para = obj.GetComponent<Parabola>(); Debug.Log(obj.name); Debug.Log(hit.collider.gameObject.name); Debug.Log(rockObj); //if(rockObj != null) if(obj.tag == "ground") { tSprite = obj.GetComponent<tk2dTiledSprite>(); tSprite.color = Color.yellow; } //obj.gameObject. if(rockObj != null ) { rockObj.State = Rock.RockStateEnum.act4; //para.active = false; Debug.Log(hit.collider.gameObject.name); } } // Ray ray; // RaycastHit hit; // // if (Input.GetMouseButton(0)) // { // ray = Camera.main.ScreenPointToRay(Input.mousePosition); // if (Physics.Raycast(ray, out hit)) // Debug.Log(hit.collider.gameObject.name); // } } if (Input.GetMouseButton(0)) { this.mousepos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z)); mousepos = new Vector3(mousepos.x, mousepos.y, 0); if (!isClike) { obj = Instantiate(this.pointer, mousepos, Quaternion.identity) as GameObject; isClike = true; } } if (Input.GetMouseButtonUp(0)) { isClike = false; } ////////////////////////////////////////////////mouse////////////////////////////////////// #endif }
// Use this for initialization void Start () { tSprite = gameObject.GetComponent<tk2dTiledSprite>(); }
void Start() { sprite = GetComponent<tk2dTiledSprite>(); }
public new void OnSceneGUI() { if (tk2dPreferences.inst.enableSpriteHandles == false || !tk2dEditorUtility.IsEditable(target)) { return; } tk2dTiledSprite spr = (tk2dTiledSprite)target; Transform t = spr.transform; var sprite = spr.CurrentSprite; if (sprite == null) { return; } Vector2 totalMeshSize = new Vector2(spr.dimensions.x * sprite.texelSize.x * spr.scale.x, spr.dimensions.y * sprite.texelSize.y * spr.scale.y); Vector2 anchorOffset = tk2dSceneHelper.GetAnchorOffset(totalMeshSize, spr.anchor); { Vector3 v = new Vector3(anchorOffset.x, anchorOffset.y, 0); Vector3 d = totalMeshSize; Rect rect0 = new Rect(v.x, v.y, d.x, d.y); Handles.color = new Color(1, 1, 1, 0.5f); tk2dSceneHelper.DrawRect(rect0, t); Handles.BeginGUI(); // Resize handles if (tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); Rect resizeRect = tk2dSceneHelper.RectControl(123192, rect0, t); if (EditorGUI.EndChangeCheck()) { tk2dUndo.RecordObjects(new Object[] { t, spr }, "Resize"); spr.ReshapeBounds(new Vector3(resizeRect.xMin, resizeRect.yMin) - new Vector3(rect0.xMin, rect0.yMin), new Vector3(resizeRect.xMax, resizeRect.yMax) - new Vector3(rect0.xMax, rect0.yMax)); tk2dUtil.SetDirty(spr); } } // Rotate handles if (!tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); List <int> hidePts = tk2dSceneHelper.getAnchorHidePtList(spr.anchor, rect0, t); float theta = tk2dSceneHelper.RectRotateControl(456384, rect0, t, hidePts); if (EditorGUI.EndChangeCheck()) { if (Mathf.Abs(theta) > Mathf.Epsilon) { tk2dUndo.RecordObject(t, "Rotate"); t.Rotate(t.forward, theta, Space.World); } } } Handles.EndGUI(); // Sprite selecting tk2dSceneHelper.HandleSelectSprites(); // Sprite moving (translation) tk2dSceneHelper.HandleMoveSprites(t, new Rect(v.x, v.y, d.x, d.y)); } if (GUI.changed) { tk2dUtil.SetDirty(target); } }
public override void OnInspectorGUI() { tk2dTiledSprite sprite = (tk2dTiledSprite)target; base.OnInspectorGUI(); if (sprite.Collection == null) { return; } EditorGUILayout.BeginVertical(); var spriteData = sprite.GetCurrentSpriteDef(); // need raw extents (excluding scale) Vector3 extents = spriteData.boundsData[1]; bool newCreateBoxCollider = EditorGUILayout.Toggle("Create Box Collider", sprite.CreateBoxCollider); if (newCreateBoxCollider != sprite.CreateBoxCollider) { Undo.RegisterUndo(targetTiledSprites, "Create Box Collider"); sprite.CreateBoxCollider = newCreateBoxCollider; } // if either of these are zero, the division to rescale to pixels will result in a // div0, so display the data in fractions to avoid this situation bool editBorderInFractions = true; if (spriteData.texelSize.x != 0.0f && spriteData.texelSize.y != 0.0f && extents.x != 0.0f && extents.y != 0.0f) { editBorderInFractions = false; } if (!editBorderInFractions) { Vector2 newDimensions = EditorGUILayout.Vector2Field("Dimensions (Pixel Units)", sprite.dimensions); if (newDimensions != sprite.dimensions) { Undo.RegisterUndo(targetTiledSprites, "Tiled Sprite Dimensions"); foreach (tk2dTiledSprite spr in targetTiledSprites) { spr.dimensions = newDimensions; } } tk2dTiledSprite.Anchor newAnchor = (tk2dTiledSprite.Anchor)EditorGUILayout.EnumPopup("Anchor", sprite.anchor); if (newAnchor != sprite.anchor) { Undo.RegisterUndo(targetTiledSprites, "Tiled Sprite Anchor"); foreach (tk2dTiledSprite spr in targetTiledSprites) { spr.anchor = newAnchor; } } } else { GUILayout.Label("Border (Displayed as Fraction).\nSprite Collection needs to be rebuilt.", "textarea"); } Mesh mesh = sprite.GetComponent <MeshFilter>().sharedMesh; if (mesh != null) { GUILayout.Label(string.Format("Triangles: {0}", mesh.triangles.Length / 3)); } // One of the border valus has changed, so simply rebuild mesh data here if (GUI.changed) { foreach (tk2dTiledSprite spr in targetTiledSprites) { spr.Build(); EditorUtility.SetDirty(spr); } } EditorGUILayout.EndVertical(); }
void Start() { sprite = GetComponent <tk2dTiledSprite>(); max = sprite.dimensions; }
public new void OnSceneGUI() { if (tk2dPreferences.inst.enableSpriteHandles == false) { return; } tk2dTiledSprite spr = (tk2dTiledSprite)target; Transform t = spr.transform; var sprite = spr.CurrentSprite; if (sprite == null) { return; } Vector2 totalMeshSize = new Vector2(spr.dimensions.x * sprite.texelSize.x * spr.scale.x, spr.dimensions.y * sprite.texelSize.y * spr.scale.y); Vector2 anchorOffset = tk2dSceneHelper.GetAnchorOffset(totalMeshSize, spr.anchor); { Vector3 v = new Vector3(anchorOffset.x, anchorOffset.y, 0); Vector3 d = totalMeshSize; Rect rect0 = new Rect(v.x, v.y, d.x, d.y); Handles.color = new Color(1, 1, 1, 0.5f); tk2dSceneHelper.DrawRect(rect0, t); Handles.BeginGUI(); // Resize handles if (tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); Rect resizeRect = tk2dSceneHelper.RectControl(123192, rect0, t); if (EditorGUI.EndChangeCheck()) { Vector2 dim = new Vector2(resizeRect.width / (sprite.texelSize.x * spr.scale.x), resizeRect.height / (sprite.texelSize.y * spr.scale.y)); dim.x = Mathf.Abs(dim.x); dim.y = Mathf.Abs(dim.y); Undo.RegisterUndo(new Object[] { t, spr }, "Resize"); if (dim != spr.dimensions) { spr.dimensions = dim; } Vector2 newAnchorOffset = tk2dSceneHelper.GetAnchorOffset(new Vector2(resizeRect.width, resizeRect.height), spr.anchor); Vector3 newLocalPos = new Vector3(resizeRect.xMin - newAnchorOffset.x, resizeRect.yMin - newAnchorOffset.y, 0.0f); Vector3 newPosition = t.TransformPoint(newLocalPos); if (newPosition != t.position) { t.position = newPosition; } } } // Rotate handles if (!tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); List <int> hidePts = tk2dSceneHelper.getAnchorHidePtList(spr.anchor, rect0, t); float theta = tk2dSceneHelper.RectRotateControl(456384, rect0, t, hidePts); if (EditorGUI.EndChangeCheck()) { Undo.RegisterUndo(t, "Rotate"); if (Mathf.Abs(theta) > Mathf.Epsilon) { t.Rotate(t.forward, theta); } } } Handles.EndGUI(); // Sprite selecting tk2dSceneHelper.HandleSelectSprites(); // Sprite moving (translation) tk2dSceneHelper.HandleMoveSprites(t, new Rect(v.x, v.y, d.x, d.y)); } }
/// <summary> /// Adds a tiled trail to the Projectile /// </summary> /// <param name="timeTillAnimStart">How long after spawning until the trail will begin to play it's animation, if it has one.</param> public static void AddTrailToProjectile(this Projectile target, string spritePath, Vector2 colliderDimensions, Vector2 colliderOffsets, List <string> animPaths = null, int animFPS = -1, List <string> startAnimPaths = null, int startAnimFPS = -1, float timeTillAnimStart = -1, float cascadeTimer = -1, float softMaxLength = -1, bool destroyOnEmpty = false) { try { GameObject newTrailObject = new GameObject(); newTrailObject.InstantiateAndFakeprefab(); newTrailObject.transform.parent = target.transform; float convertedColliderX = colliderDimensions.x / 16f; float convertedColliderY = colliderDimensions.y / 16f; float convertedOffsetX = colliderOffsets.x / 16f; float convertedOffsetY = colliderOffsets.y / 16f; int spriteID = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection); tk2dTiledSprite tiledSprite = newTrailObject.GetOrAddComponent <tk2dTiledSprite>(); tiledSprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID); tk2dSpriteDefinition def = tiledSprite.GetCurrentSpriteDef(); def.colliderVertices = new Vector3[] { new Vector3(convertedOffsetX, convertedOffsetY, 0f), new Vector3(convertedColliderX, convertedColliderY, 0f) }; def.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft); tk2dSpriteAnimator animator = newTrailObject.GetOrAddComponent <tk2dSpriteAnimator>(); tk2dSpriteAnimation animation = newTrailObject.GetOrAddComponent <tk2dSpriteAnimation>(); animation.clips = new tk2dSpriteAnimationClip[0]; animator.Library = animation; TrailController trail = newTrailObject.AddComponent <TrailController>(); //---------------- Sets up the animation for the main part of the trail if (animPaths != null) { BeamToolbox.SetupBeamPart(animation, animPaths, "trail_mid", animFPS, null, null, def.colliderVertices); trail.animation = "trail_mid"; trail.usesAnimation = true; } else { trail.usesAnimation = false; } if (startAnimPaths != null) { BeamToolbox.SetupBeamPart(animation, startAnimPaths, "trail_start", startAnimFPS, null, null, def.colliderVertices); trail.startAnimation = "trail_start"; trail.usesStartAnimation = true; } else { trail.usesStartAnimation = false; } //Trail Variables if (softMaxLength > 0) { trail.usesSoftMaxLength = true; trail.softMaxLength = softMaxLength; } if (cascadeTimer > 0) { trail.usesCascadeTimer = true; trail.cascadeTimer = cascadeTimer; } if (timeTillAnimStart > 0) { trail.usesGlobalTimer = true; trail.globalTimer = timeTillAnimStart; } trail.destroyOnEmpty = destroyOnEmpty; } catch (Exception e) { ETGModConsole.Log(e.ToString()); } }