Как получить конкретную ось объекта?
Я хочу сделать объект который будет следовать за другим объектом по определённой оси, но я не знаю как именно получать конкретную ось, а не все оси. Вот код который у меня есть:
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 шт):
Если чуть чуть изменить Ваш код, то можно сделать так:
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. Данный метод - это просто телепортация объекта в каждом кадре в зависимости от положения другого объекта. Если в Вашем проекте планируется работа с коллайдерами и взаимодействия объектов, то такой метод не подойдёт.