Exemple #1
0
    public void Move(float shift)
    {
        shiftLSum += shift;
        shiftRSum += shift;
        Renderer lrender = Ltrack.GetComponent <Renderer>();

        lrender.material.SetTextureOffset("_MainTex", new Vector2(-(shiftLSum / 100) % 1, 0));
        Renderer rrender = Rtrack.GetComponent <Renderer>();

        rrender.material.SetTextureOffset("_MainTex", new Vector2(-(shiftRSum / 100) % 1, 0));
        Vector3 rotation = new Vector3(shift, 0f, 0f);

        foreach (Transform go in Lgear)
        {
            go.Rotate(rotation);
        }
        foreach (Transform go in Rgear)
        {
            go.Rotate(rotation);
        }
    }
Exemple #2
0
    public void Turn(float shift)
    {
        float lshift, rshift;
        float gap = 0.3f, moveSpeed = 2;

        if (shift > 0)
        {
            shiftLSum += shift;
            shiftRSum += -shift * gap;
            lshift     = shift;
            rshift     = -shift * gap;
        }
        else
        {
            shiftLSum += -shift * gap;
            shiftRSum += shift;
            lshift     = -shift * gap;
            rshift     = shift;
        }
        lshift *= moveSpeed;
        rshift *= moveSpeed;
        Renderer lrender = Ltrack.GetComponent <Renderer>();

        lrender.material.SetTextureOffset("_MainTex", new Vector2(-shiftLSum / 100 % 1, 0));
        Renderer rrender = Rtrack.GetComponent <Renderer>();

        rrender.material.SetTextureOffset("_MainTex", new Vector2(-shiftRSum / 100 % 1, 0));
        Vector3 rotationL = new Vector3(lshift, 0f, 0f);
        Vector3 rotationR = new Vector3(rshift, 0f, 0f);

        foreach (Transform go in Lgear)
        {
            go.Rotate(rotationL);
        }
        foreach (Transform go in Rgear)
        {
            go.Rotate(rotationR);
        }
    }