YugGO
@YugGO

Как в моём случаи лучше реализовать механику в Unity3D?

public class AItest : MonoBehaviour
{
    public float dis = 2;

    public Camera cam;
    public NavMeshAgent agent;

    private void Update()
    {
        if (Input.GetMouseButtonDown(1))
        {
            Ray ray = cam.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit))
            {
                if (hit.transform.CompareTag("Ground"))
                {
                    //Если дистанция будет больше "dis", то объект движется. 
                    //agent.SetDestination(hit.point);

                    //Если  дистанция будет меньше "dis", то объект не движется.
                }
            }
        }
    }
}


По этому коду понятно как двигается объект.

Но нужно кое-что реализовать - нужно дать понять объекту, что когда его дистанция с "hit.point" станет меньше "dis", он должен перестать движение.

Я долго пытался найти решение, но пока что не смог.
У кого есть идеи?
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Gera01
Unity, С# и больше ничего.
Я делал через LookAt.
if (Vector3.Distance(transform.position, player.transform.position) < seeDistance) // если видит игрока
            {
                if (canRide == true)
                {
                    transform.LookAt(new Vector3(player.position.x, transform.position.y, player.position.z));
                    transform.Translate(new Vector3(0, 0, speed * Time.deltaTime)); // смотрит и двигается к игроку
                }
}

PS если помогло - поставь нравиться и отметь решением.
Ответ написан
CHIDWI
@CHIDWI
Изучаю C#, Unity3D
А в чем собственно проблема? У вас в hit содержится куча данных. Например вы можете достать ее позицию в мире hit.collider.gameobject.transform.position и измерять расстояние между ней и this.gameobject.transform.position через vector3 distance или просто считая разницу.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
mpulse Москва
от 80 000 до 140 000 ₽
Stark Games Минск
До 3 500 $
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
01 окт. 2020, в 19:40
15000 руб./за проект
01 окт. 2020, в 19:24
5000 руб./за проект