Esempio n. 1
0
 private void Control(bool right)     //歩行操作
 {
     if (!justGravity)
     {
         rotatingPosition += right ? walkSpeed : -walkSpeed;
         float theta = (rotator.way + rotatingPosition) / 2 * Mathf.PI;
         transform.position = new Vector3(rotator.GetOriginX() + Mathf.Cos(theta) * rotatingSize, rotator.GetOriginY() + Mathf.Sin(theta) * rotatingSize);
         transform.rotation = Quaternion.Euler(0f, 0f, (rotatingPosition + rotator.way + 1f) * 90f);
         if (rotatingPosition >= 1f)
         {
             way = rotator.GetWayR();
             transform.rotation = Quaternion.Euler(0f, 0f, 90f * way);
             UnsetRotator();
         }
         if (rotatingPosition <= 0f)
         {
             way = rotator.GetWayL();
             transform.rotation = Quaternion.Euler(0f, 0f, 90f * way);
             UnsetRotator();
         }
     }
     if (justGravity)
     {
         transform.Translate(right ? walkSpeed : -walkSpeed, 0, 0);
     }
 }
Esempio n. 2
0
 public void SetRotator(RotatorScript r)     //ローテーターをセット
 {
     rotator          = r;
     justGravity      = false;
     rotatingSize     = way % 2 == 0 ? Mathf.Abs(rotator.GetOriginY() - transform.position.y) : Mathf.Abs(rotator.GetOriginX() - transform.position.x);
     rotatingPosition = rotator.GetWayL() == way ? 0f : 1f;
     way = rotator.GetWayL();
 }