public void SwingWeapon(SwingDirection direction) { print(direction.ToString()); string[] dirStr = direction.ToString().Split('_'); string fromPos = dirStr[0]; string toPos = dirStr[1]; string fromMidToPos = fromPos + "Mid" + toPos; // gameObject.MoveTo(iTweenPath.GetPath("RightTopLeftBot"), 1, 0, EaseType.easeOutCubic); Transform[] swingPositions = new Transform[3]; //print(fromPos); swingPositions[0] = WeaponPositions.transform.FindChild(fromPos); //print(fromMidToPos); swingPositions[1] = WeaponPositions.transform.FindChild(fromMidToPos); //print(toPos); swingPositions[2] = WeaponPositions.transform.FindChild(toPos); Vector3[] vectPosSwing = new Vector3[3]; vectPosSwing[0] = swingPositions[0].localPosition; vectPosSwing[1] = swingPositions[1].localPosition; vectPosSwing[2] = swingPositions[2].localPosition; Vector3[] vectRotSwing = new Vector3[2]; vectRotSwing[0] = weaponDefaultRotation.eulerAngles; vectRotSwing[1] = swingPositions[2].eulerAngles; // iTween.MoveTo(gameObject, iTween.Hash()); // SwingWeapon(swingPositions); // WeaponPositions // iTween.PutOnPath(gameObject, swingPositions, pathVal); // gameObject.MoveTo(swingPositions,1f, 0f); if (Attacking == false) //if currently not attacking, attack { // gameObject.MoveTo(vectPosSwing[0], 0.1f, 0); gameObject.RotateTo(vectRotSwing[1], AttackSpeed , 0); iTween.MoveTo(gameObject, iTween.Hash("path", vectPosSwing, "time", AttackSpeed , "islocal", true, "oncomplete", "SwingCompleted", "easetype", "easeOutBack")); Attacking = true; } else // if already attacking save this swipe and use it after it's finished { swipeInQueue = direction; return; } GameObject weaponTrail = transform.GetChild(0).transform.FindChild("Trail").gameObject; if (weaponTrail != null) { weaponTrail.GetComponent<TrailRenderer>().enabled = true; } }