Как я могу переместить объект к другому объекту в Unity3D?

У меня есть куб, который я хочу всегда двигать к своему игроку. Я пробовал несколько решений в течение нескольких часов, но ни одно из них не помогло. Мой текущий сценарий выглядит так.

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

public class fol : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    public GameObject Player;
    // Update is called once per frame
    void Update ()
    {
        Vector3.MoveTowards(Player.transform.position.x, Player.transform.position.y, Player.transform.position.z, 1);
    }
}

Этот сценарий является дочерним по отношению к объекту, который я хочу переместить в сторону своего игрока.

Еще ничего не компилировалось. Единственная ошибка этого скрипта:

Assets/fol.cs(16,11): error CS1501: No overload for method MoveTowards takes 4 arguments

Итак, как только я удалю 1, он получит:

Assets/fol.cs(16,11): error CS1502: The best overloaded method match for UnityEngine.Vector3.MoveTowards(UnityEngine.Vector3, UnityEngine.Vector3, float)' has some invalid arguments

и

Assets/fol.cs(16,49): error CS1503: Argument #1 cannot convert float expression to type UnityEngine.Vector3

Что вы имеете в виду под «ни один из них не работал»? Пожалуйста, более подробно расскажите о том, что в настоящее время делает код в вопросе.

Ruzihm 18.12.2018 20:38

@Ruzihm Ничего не компилировалось. Единственная ошибка для этого скрипта - Assets / fol.cs (16,11): error CS1501: Нет перегрузки для аргументов метода MoveTowards' takes 4 ', поэтому, как только я удалю 1, получится Assets / fol.cs (16,11): ошибка CS1502: наилучшее совпадение перегруженного метода для UnityEngine.Vector3.MoveTowards(UnityEngine.Vector3, UnityEngine.Vector3, float)' has some invalid arguments and Assets/fol.cs(16,49): error CS1503: Argument # 1 'не удается преобразовать float' expression to type UnityEngine.Vector3'

David 18.12.2018 20:44

Спасибо! Я пошел дальше и переместил ошибки в вопрос. См. Ответ по ссылке вверху страницы этого вопроса, чтобы узнать, как использовать MoveTowards и как присвоить результат положению куба.

Ruzihm 18.12.2018 20:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
1 082
1

Ответы 1

В вашем MoveTowards первая заданная позиция должна быть позицией объекта, который вам нужно переместить, затем вторая должна быть позицией цели, а третий аргумент - приращение движения. Как предполагает @Ruzihm, это дубликат Перемещение объекта с помощью Vector3, и вы найдете там отличную информацию для решения этой проблемы. Также проверьте единство API.

Другие вопросы по теме