public void InitTarget(Point p1, Point p2, Transform target, DoAnimated method, float speed = 100) { this.p2 = p2; this.target = target; this.method = method; speedx = (float)(p2.x - p1.x) / speed; isspeedxpositive = speedx >= 0; xnotsame = p2.x != p1.x; speedy = (float)(p2.y - p1.y) / speed; isspeedypositive = speedy >= 0; ynotsame = p2.y != p1.y; target.localPosition = new Vector2 (p1.x, p1.y); }
//for static animations public void InitTarget(Transform target, List<Sprite> sprites, int frameTimer, DoAnimated method) { Move = false; StartAnimationTime = Time.time; this.sprites = sprites; this.frameTimer = (frameTimer > 0)? frameTimer : 2; this.explotionTimer = frameTimer; this.index = 0; this.method = method; this.target = target; }
//For bullets public void InitTarget(Point p1, Point p2, UnityEngine.Object target, Transform parent, DoAnimated method, float speed, List<Sprite> explotion, int explotionTimer, bool needToDestroy, bool needToResize = false) { StartAnimationTime = Time.time; Vector3 moveDirection = new Vector2(p2.x - p1.x, p2.y - p1.y); float angle = Mathf.Atan2(moveDirection.y, moveDirection.x) * Mathf.Rad2Deg; Move = true; UnityEngine.Object o = Instantiate(target, parent.position, parent.rotation); (o as GameObject).transform.SetParent(parent); (o as GameObject).transform.GetComponent<RectTransform>().localScale = new Vector3(1, 1, 1); (o as GameObject).transform.localPosition = new Vector2 (p1.x, p1.y); if (target == BattlefieldScript.Instance.Torpeda) (o as GameObject).transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); if (target != BattlefieldScript.Instance.Torpeda) (o as GameObject).transform.GetComponent<RectTransform> ().sizeDelta = new Vector2(BattlefieldScript.Instance.size, BattlefieldScript.Instance.size); this.p1 = p1; this.needToResize = needToResize; this.p2 = p2; this.explosion = explotion; this.explotionTimer = explotionTimer; float xd = (float)(p2.x - p1.x); float yd = (float)(p2.y - p1.y); if (needToDestroy) { float m = speed / (Math.Abs (xd) + Math.Abs (yd)); speedx = xd * m; speedy = yd * m; } else { speedx = xd / speed; speedy = yd / speed; } isspeedxpositive = speedx >= 0; xnotsame = p2.x != p1.x; isspeedypositive = speedy >= 0; ynotsame = p2.y != p1.y; if (this.target != null) end(); this.method = method; this.needToDestroy = needToDestroy; this.target = (o as GameObject).transform; if (target == BattlefieldScript.Instance.Bullet) SoundScript.Instance.PlaySound (SoundTitle.Ship_fire_snd); }