Beispiel #1
0
    void OnTriggerEnter(Collider col)
    {
        player      = col.gameObject;
        detectState = player.gameObject.GetComponent <DetectState> ();

        if (player.transform.localScale.x != 2)
        {
            GlobalFuncVari.setRailBounds(col.transform.localScale);
            player.transform.localScale = new Vector3(2, player.transform.localScale.y, 2);
        }

        if (GlobalFuncVari.getNum() == 0)
        {
            if (Vector3.Angle(transform.forward, player.transform.right) <= 90)
            {
                GlobalFuncVari.railFalse();
                detectState.updateKeyState("Rail").setVector = -transform.right;
            }
            else
            {
                GlobalFuncVari.railTrue();
                detectState.updateKeyState("Rail").setVector = transform.right;
            }
        }
        else if (GlobalFuncVari.getallowRail())
        {
            detectState.m_getRayCastState = false;
            detectState.changeKeyState("Rail");
            detectState.m_getRailPermission = false;

            if (GlobalFuncVari.getRailbool())
            {
                push = new Vector3(-transform.eulerAngles.z, transform.eulerAngles.y + 90, player.transform.eulerAngles.z);
                player.transform.position    = transform.position + (player.transform.position - transform.position).magnitude * -transform.right;
                player.transform.eulerAngles = new Vector3(-transform.eulerAngles.z, transform.eulerAngles.y + 90, player.transform.eulerAngles.z);
                detectState.updateKeyState("Rail").setVector = transform.right;
            }
            else
            {
                push = new Vector3(transform.eulerAngles.z, transform.eulerAngles.y - 90, player.transform.eulerAngles.z);
                player.transform.position    = transform.position + (player.transform.position - transform.position).magnitude * transform.right;
                player.transform.eulerAngles = new Vector3(transform.eulerAngles.z, transform.eulerAngles.y - 90, player.transform.eulerAngles.z);
                detectState.updateKeyState("Rail").setVector = -transform.right;
            }
        }
        Grindactive = true;
        GlobalFuncVari.incNum();

        if (detectState.m_getRailPermission)
        {
            detectState.m_getRayCastState = false;
            detectState.changeKeyState("Rail");
            detectState.m_getRailPermission = false;
            GlobalFuncVari.allowRailTrue();

            if (GlobalFuncVari.getRailbool())
            {
                player.transform.position    = transform.position + (player.transform.position - transform.position).magnitude * -transform.right;
                player.transform.eulerAngles = new Vector3(-transform.eulerAngles.z, transform.eulerAngles.y + 90, player.transform.eulerAngles.z);
                push = new Vector3(-transform.eulerAngles.z, transform.eulerAngles.y + 90, player.transform.eulerAngles.z);
            }
            else
            {
                player.transform.position    = transform.position + (player.transform.position - transform.position).magnitude * transform.right;
                player.transform.eulerAngles = new Vector3(transform.eulerAngles.z, transform.eulerAngles.y - 90, player.transform.eulerAngles.z);
                push = new Vector3(transform.eulerAngles.z, transform.eulerAngles.y - 90, player.transform.eulerAngles.z);
            }
        }
    }