Inheritance: MonoBehaviour
Beispiel #1
0
    //euler角をangle角に変換
    void SlopeVector(float Vector)
    {
        if (Vector >= MinRotation)
        {
            positionInit = PositionInit.left;
        }
        else if (Vector <= MaxRotation)
        {
            positionInit = PositionInit.right;
        }
        else if (Vector == 0.0f)
        {
            positionInit = PositionInit.zero;
        }

        switch (positionInit)
        {
        case PositionInit.left:
            InitVactor = 360.0f - transform.eulerAngles.z;
            break;

        case PositionInit.right:
            InitVactor = transform.eulerAngles.z;
            break;

        case PositionInit.zero:
            InitVactor = 0.0f;
            break;
        }
        VectorCounter = saveVector = InitVactor * 2;
        SpeedAddition = MaxSpeed / VectorCounter;
    }
Beispiel #2
0
 void Initialize()
 {
     InitVactor            = 0.0f;
     VectorCounter         = 0.0f;
     saveVector            = 0.0f;
     InitSpeed             = 0.0f;
     SpeedAddition         = 0.0f;
     transform.eulerAngles = new Vector3(0, 0, 0);
     positionInit          = PositionInit.zero;
 }
Beispiel #3
0
    //caseに応じて揺れるor戻る
    void SwayMove()
    {
        switch (childmode)
        {
        //子供がいない
        case ChildCount.none:
            transform.eulerAngles = new Vector3(0, 0, 0);
            Initialize();
            break;

        //子供がいる
        case ChildCount.child:
            MoveSpeed = Onaga.MousePosition.TolVector * RotationPower;
            switch (Onaga.MousePosition.XDMode)
            {
            //右に移動中
            case Onaga.MousePosition.XDStatus.right:
                if (GravityTimeCounter <= GravityTimeLimit)
                {
                    if (MinRotation < transform.eulerAngles.z || MaxRotation >= (int)transform.eulerAngles.z)
                    {
                        transform.eulerAngles -= new Vector3(0, 0, MoveSpeed);
                        if (MinRotation >= transform.eulerAngles.z && StopperRotation <= transform.eulerAngles.z)
                        {
                            transform.eulerAngles = new Vector3(0, 0, MinRotation);
                        }
                    }
                    GravityTimeCounter += Time.deltaTime;
                }
                else
                {
                    if (MinRotation < transform.eulerAngles.z /*|| MaxRotation >= (int)transform.eulerAngles.z*/)
                    {
                        transform.eulerAngles += new Vector3(0, 0, GravityPower);
                        if (MinRotation >= transform.eulerAngles.z && StopperRotation <= transform.eulerAngles.z)
                        {
                            transform.eulerAngles = new Vector3(0, 0, MinRotation);
                        }
                    }
                    GravityTimeCounter += Time.deltaTime;
                    if (GravityTimeCounter >= GravityTimeLimit * 2.0f)        //傾き時間と同じ時間分重力による揺れ戻り
                    {
                        GravityTimeCounter = 0.0f;
                    }
                }
                SlopeVector(transform.eulerAngles.z);
                ReleaseChild();
                break;

            //左に移動中
            case Onaga.MousePosition.XDStatus.left:
                MoveSpeed = Onaga.MousePosition.TolVector * RotationPower;
                if (GravityTimeCounter <= GravityTimeLimit)
                {
                    if (MaxRotation > transform.eulerAngles.z || StopperRotation <= (int)transform.eulerAngles.z)
                    {
                        transform.eulerAngles += new Vector3(0, 0, MoveSpeed);
                        if (MaxRotation <= transform.eulerAngles.z && StopperRotation >= transform.eulerAngles.z)
                        {
                            transform.eulerAngles = new Vector3(0, 0, MaxRotation);
                        }
                    }
                    GravityTimeCounter += Time.deltaTime;
                }
                else
                {
                    if (MaxRotation > transform.eulerAngles.z /*|| StopperRotation <= (int)transform.eulerAngles.z*/)
                    {
                        transform.eulerAngles -= new Vector3(0, 0, GravityPower);
                        if (MaxRotation <= transform.eulerAngles.z && StopperRotation >= transform.eulerAngles.z)
                        {
                            transform.eulerAngles = new Vector3(0, 0, MaxRotation);
                        }
                    }
                    GravityTimeCounter += Time.deltaTime;
                    if (GravityTimeCounter >= GravityTimeLimit * 2.0f)        //傾き時間と同じ時間分重力による揺れ戻り
                    {
                        GravityTimeCounter = 0.0f;
                    }
                }
                SlopeVector(transform.eulerAngles.z);
                ReleaseChild();
                break;

            //移動していない
            case Onaga.MousePosition.XDStatus.initial:
                GravityTimeCounter = 0.0f;
                int roopcount = 1;
                if (VectorCounter > 0.0f)
                {
                    switch (positionInit)
                    {
                    case PositionInit.left:
                        if (VectorCounter > roopcount * (int)ZeroSet)
                        {
                            transform.eulerAngles += new Vector3(0, 0, SpeedManager());
                            VectorCounter         -= SpeedManager();
                        }
                        else
                        {
                            roopcount++;
                            saveVector   -= ZeroSet;
                            VectorCounter = saveVector;
                            positionInit  = PositionInit.right;
                        }
                        break;

                    case PositionInit.right:
                        if (VectorCounter > roopcount * (int)ZeroSet)
                        {
                            transform.eulerAngles -= new Vector3(0, 0, SpeedManager());
                            VectorCounter         -= SpeedManager();
                        }
                        else
                        {
                            roopcount++;
                            saveVector   -= ZeroSet;
                            VectorCounter = saveVector;
                            positionInit  = PositionInit.left;
                        }
                        break;

                    case PositionInit.zero:
                        transform.eulerAngles = new Vector3(0, 0, 0);
                        break;
                    }
                }
                break;
            }
            break;
        }
    }