@vitek22

Как сделать, чтобы объект двигался на другой объект?

Я использовал информацию из интернета и написал такой код:

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".
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
Priskly
@Priskly
Миллиардер, филантроп, 3D, Unity C# программист
Можно попробовать
transform.LookAt(player)
transform.translate(Vector.forward * speed * Time.DeltaTime)
или
Vector3 moveDir = player.transform.position - transform.position
transform.translate(moveDir * speed * Time.DeltaTime)
или
накинуть CharacterController, запечь его в body через getcomponent, и
transform.LookAt(player)
body.Move(player.transform.position)
если не нужно плавно, то можно и просто
transform.position = player.transform.position

С этим разобрались. Насчёт обучения. Посмотри курс по С# от SimpleCode, курс по Unity от CodeMonkey (канал впринципе хороший, советую запомнить) ну и много-много практики, в интернет не один раз ещё полезешь, удачи!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы