Я только начал работать над другим проектом, в котором одной из игровых механик является возможность перемещения дрона в положение курсора мыши.
Вот мой код ниже, где у меня есть несколько проблем (укажу)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class lightDrone : MonoBehaviour
{
Vector3 newPosition;
void Start()
{
newPosition = transform.position + (0,0,10); //***Problem A***
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
newPosition = hit.point;
transform.position = newPosition; // ***Problem B***
}
}
}
}
Проблема A - Я пытаюсь установить новую позицию = везде, где курсор нажимал + 10 по оси Y, поэтому кажется, что «Дрон» летит, а не в земле. Это ничего не дает и просто дает мне ошибки компиляции.
Я хочу, чтобы точная позиция была (cursor.x, (public int (y)), cursor.z), но у меня есть очень смутная идея сделать это.
Задача B -
В настоящее время, когда я щелкаю мышью, объект перемещается к курсору, но кажется, что он мгновенно телепортируется. Я хочу, чтобы он двигался с определенной скоростью, и я думаю, что мне нужен публичный float, чтобы сделать это и изменить transform.position на translate.position, но это опять-таки не работает.
Заранее спасибо за ответы на мои вопросы, я пытаюсь изучить эти новые механизмы и как их кодировать. :)