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); } }
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); } }