Как получить конкретную ось объекта?

Я хочу сделать объект который будет следовать за другим объектом по определённой оси, но я не знаю как именно получать конкретную ось, а не все оси. Вот код который у меня есть:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Follow : MonoBehaviour
{
    GameObject cube; // Задаю переменную класса GameObject
    
    void Start()
    {
        cube = GameObject.Find("MainCube"); // Задаю переменную на объект MainCube
    }

    void Update()
    {
        GetComponent<Transform>().position = cube.GetComponent<Transform>().position; // Перемещаю объект к кубу
    }
}

Моя задача: получить только ось X куба и переместить объект по этой оси.

В C# я почти ничего не знаю, не судите строго, а на Unity делаю игру по YouTube ролику (немного дополнив своими штуками) от нечего делать и просто что-бы попробовать что-то новое.


Ответы (1 шт):

Автор решения: SoulOFTrue

Если чуть чуть изменить Ваш код, то можно сделать так:

public class Follow : MonoBehaviour
{
    GameObject cube; // Задаю переменную класса GameObject
    Vector3 CurrentPosition; //Текущая позиция объекта, на котором висит этот скрипт
    void Start()
    {
        cube = GameObject.Find("MainCube"); // Задаю переменную на объект MainCube
        CurrentPosition = GetComponent<Transform>().position;//Присваиваем переменной текущую позицию объекта
    }

    void Update()
    {
        CurrentPosition.x = cube.transform.position.x; //В каждом кадре присваиваем переменной позиции по Х новое значение из отслеживаемого объекта
        transform.position = CurrentPosition; //Меняем позицию
    }
}

P.S. Данный метод - это просто телепортация объекта в каждом кадре в зависимости от положения другого объекта. Если в Вашем проекте планируется работа с коллайдерами и взаимодействия объектов, то такой метод не подойдёт.

→ Ссылка