Всем привет при создании (очередной) игры у меня возникла проблема с "бесконечной дорогой".
Конкретно дорого едет на игрока, а он стоит на месте(логично) и когда она доходит до координаты z = -40f, то она телепортируется в конец дороги к координате z = 140f. И когда поставить например скорость 10, спустя один (круговорот этой дороги (их 9)) начинаются щели между частями дороги и спустя время они становятся всё шире и шире. Проблема в том что когда она перемещается то z координата показывает такие числа: z = 123.06784 , z = 54.428342. А мне нужно чтоб было: z = 23 , z = 106. Я ловлю эту координату так:
if ( z < finish || z == finish)
{
road.transform.position = new Vector3(0f, 0f, statrt); // start = 140f это начало
}
И я хочу чтоб при любой скорости у меня было z = не float а int. Помогите пж, а то я уже задолбался фиксить эту проблему.
Вот весь код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class moveplat : MonoBehaviour
{
public int speed;
public GameObject road;
public float z;
public float finish = -40f;
public float start = 140f;
void Start()
{
speed = PlayerPrefs.GetInt("DataRoadSpeed"); // это я беру скорость с меню
}
void Update()
{
road.transform.Translate(Vector3.back * speed * Time.deltaTime);// перемещение дороги
z = road.transform.position.z; // узнаю координату z дороги
if ( z < finish || z == finish) // пытаюсь словить дорогу вот-так
{
road.transform.position = new Vector3(0f, 0f, start); // тепехаю её в конец
}
}
}