Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Делаю играю в Unity, нужно обратится к курсору.

Тимофей Бехтин Ученик (102), открыт 2 недели назад
В общем делаю я игру, тема такая: ферма, появляются животные, ты по клику на пробел кидаешь еду, и при прикосновении к животному (едой) ты получаешь очко. вид с верху. я уже сделал спавн животных, управление и так же спавн еды. Можете видеть скирны, и проблема в том что я сделал что бы еда летела вперед, но мне нужно что бы она летела по направлению курсора. т.е я навожусь на корову и еда летит в ее сторону. Мне нужно узнать как обратится к положению курсора, а потом еще и каким образом написать код, что бы еда летела по его направлению. Там будет написано, фуд контроллер это скрипт для того, что бы еда летела вперед. Фуд спавнер нужен для того что бы еда появлялась на позиции игрока. НА скрине с игрой показаны животные идущие вперед, и я должен от них отстреливатся
1 ответ
regr00t Профи (837) 2 недели назад
 using UnityEngine; 

public class FoodController : MonoBehaviour
{
public float speed = 5f;

void Update()
{
// Получаем позицию курсора в мировых координатах
Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mousePosition.z = 0f; // Игнорируем z координату

// Находим направление к курсору
Vector3 direction = (mousePosition - transform.position).normalized;

// Перемещаем еду в направлении курсора
transform.position += direction * speed * Time.deltaTime;
}
}
В скрипте FoodSpawner, после создания объекта еды, получите ссылку на компонент FoodController и задайте необходимую скорость:
 GameObject food = Instantiate(foodPrefab, player.position, Quaternion.identity); 
FoodController foodController = food.GetComponent();
foodController.speed = 10f; // Задайте желаемую скорость
Для более реалистичного движения можно использовать физику (Rigidbody2D) и применять силу в направлении курсора.
Можно добавить ограничение на максимальное расстояние полета еды.
Для плавного поворота еды можно использовать transform.LookAt(mousePosition) или Quaternion.Slerp.
Тимофей БехтинУченик (102) 2 недели назад
Хорош, легенда
Тимофей БехтинУченик (102) 2 недели назад
Короче, еда летит в сторону камеры
Похожие вопросы