Как сделать, чтобы объект двигался на другой объект?
Я использовал информацию из интернета и написал такой код:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class boss : MonoBehaviour { [SerializeField] int bosshealth = 1000; [SerializeField] GameObject HPshow; [SerializeField] GameObject tentackles; [SerializeField] Transform player; Rigidbody2D rb; public float speed = 2.5f; void Start() { } public void Update() { StartCoroutine(Time_attack()); } IEnumerator Time_attack() { yield return new WaitForSeconds(11f); Vector2 target = new Vector2(player.transform.position.x, player.transform.position.y); Vector2.MoveTowards(tentackles.transform.position, target, speed * Time.fixedDeltaTime); } } |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class boss : MonoBehaviour { [SerializeField] int bosshealth = 1000; [SerializeField] GameObject HPshow; [SerializeField] GameObject tentackles; [SerializeField] Transform player; Rigidbody2D rb; public float speed = 2.5f; void Start() { } public void Update() { StartCoroutine(Time_attack()); } IEnumerator Time_attack() { yield return new WaitForSeconds(11f); Vector2 target = new Vector2(player.transform.position.x, player.transform.position.y); Vector2.MoveTowards(tentackles.transform.position, target, speed * Time.fixedDeltaTime); } }
У меня этот скрипт не работает, хотя я все ссылки заполнил кроме "HPshow".
Дополнительно:
а что ты ждешь 11 секунд?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы объект двигался на другой объект, вам нужно определить координаты целевого объекта и направление движения. В зависимости от используемого языка программирования, этот процесс может немного отличаться, но в целом основные шаги будут одинаковыми.
Давайте предположим, что у вас есть два объекта - объект, который вы хотите двигать, и целевой объект, к которому он должен двигаться. Первым делом необходимо определить координаты обоих объектов.
Пример на языке программирования PHP:
// Координаты объектов $object1_x = 100; $object1_y = 100; $object2_x = 200; $object2_y = 200; // Рассчитываем направление движения $dx = $object2_x - $object1_x; $dy = $object2_y - $object1_y; // Нормализуем вектор направления $length = sqrt($dx * $dx + $dy * $dy); $dx /= $length; $dy /= $length; // Задаем скорость движения объекта $speed = 5; // Двигаем объект $object1_x += $dx * $speed; $object1_y += $dy * $speed;
В этом примере мы вычисляем разницу координат между объектами и нормализуем вектор направления, чтобы объект двигался с постоянной скоростью к целевому объекту. Здесь скорость движения объекта равна 5 единицам.
Таким образом, вы можете использовать подобный подход в своем проекте, учитывая особенности и требования вашей игры или приложения. Не забудьте также обработать случаи, когда объекты достигают друг друга или возникают препятствия на пути движения.