ADev писал(а):при нажатии на свободное место экрана
Место действительно свободное, то-есть вообще ничего нет?
Допустим "свободное место" - это объект (куб) пол, у которого установлен тег Floor.
Скрипт ниже, цепляется на тот объект, который будет двигаться.
Используется csharp
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour
{
private Rigidbody _rb; //кеш для твёрдого тела
private float force = 500f; //сила толчка =)
void Start()
{
_rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
//если нажали ЛКМ
if (Input.GetMouseButtonDown(0))
{
//пускаем луч из камеры
RaycastHit hit;
if (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit))
{
//если луч столкнулся с полом
if (hit.collider.CompareTag("Floor"))
{
// находим направление от вашего куба до точки столкновения луча с полом
Vector3 moveVector = transform.position - hit.point;
moveVector.y = 0; // чтобы объект не двигался вверх, а только по икс и зет.
_rb.AddForce(moveVector.normalized * force); // добавляем к физическому телу вашего объекта силу
// с найденным направлением
}
}
}
}
}