예제 #1
0
    private void Start()
    {
        swinger = GetComponent <MatchTransform>().target.GetComponent <Swinger>();

        swinger.OnPreSwing   += Swinger_OnPreSwing;
        swinger.OnSwingStart += Swinger_OnSwingStart;
        swinger.OnSwingPause += Swinger_OnSwingPause;
        swinger.OnSwingEnd   += Swinger_OnSwingEnd;
    }
예제 #2
0
 public void DoSwing(Swinger swinger, System.Action callback = null)
 {
     swinger.DoSwing(swingStretch, swingArc, swingTime, swingPause, callback);
 }
예제 #3
0
        IEnumerator SpinnyBoi()
        {
            if (SpinSaberUI.blindTime > 0f && SpinSaberUI.visibleTime > 0f)
            {
                StartCoroutine(BlindBoi());
            }
            float          t        = 0;
            List <Swinger> swingers = config.SetupSwingers();

            if (swingers.Count < 1)
            {
                Console.WriteLine("[SpinSaber] Zero swingers found!  This party is weak!");
                enabled = false;
                yield break;
            }
            Console.WriteLine("[SpinSaber] Set up the swingers!");
            float timeMult = SpinSaberUI.timeMult;

            while (true)
            {
                yield return(null);

                if (IsPaused)
                {
                    //playerController.transform.root.rotation = Quaternion.identity;
                }
                else
                {
                    t += Time.deltaTime * timeMult;

                    Swinger swinger = null;
                    for (int i = 0; i < swingers.Count; i++)
                    {
                        if (swingers[i].startTime <t && swingers[i].endTime> t)
                        {
                            swinger = swingers[i];
                            break;
                        }
                    }
                    if (swinger == null)
                    {
                        swinger = swingers[0];
                        t       = 0;
                    }

                    playerController.transform.root.rotation = swinger.GetRotation((t - swinger.startTime) / (swinger.endTime - swinger.startTime)); //Convert to a 0-1 number
                }
            }

            /*while (true) {
             *  yield return null;
             *  if (IsPaused) {
             *      rot = Vector3.zero;
             *  } else {
             *      rot = playerController.transform.root.rotation.eulerAngles;
             *  }
             *  rot.x += Plugin.xRot * Time.deltaTime;
             *  rot.y += Plugin.yRot * Time.deltaTime;
             *  rot.z += Plugin.zRot * Time.deltaTime;
             *  playerController.transform.root.rotation = Quaternion.Euler(rot);
             * }*/
        }