Привет, нужна помощь
Вот мой код
Код
var unite01 : GameObject;
function Update () {
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var hit : RaycastHit;
if(Physics.Raycast(ray, hit, 500))
{
if(Input.GetMouseButtonDown(0))
{
var newUnit = Instantiate(unite01, hit.point, transform.rotation);
Destroy(gameObject);
}
transform.position.x = hit.point.x;
transform.position.z = hit.point.z;
transform.position.y = 0;
}
}
Когда я жму на кнопку(ее тут нет и проблема не в этом) то появляется gameObject
Но нужно чтобы он был привязан к мышке. Он то двигается с мышкой но проблема что мышка не указывает в землю. Наш gameObject на земле но мышка высоко над ним.
Мне надо при клике добавить юнита там где мышка. Но проблема опять в том что мышка находится в высоте. Надо как все ровно что поставить строение в стратегии, наше строение прикреплено к мышке но и находится в нужном месте на земле. Кто может сказать в чем проблема
СпасибоДобавлено (21.04.2013, 21:25)
---------------------------------------------
Если коротко то мне нужно получить координаты мышки на земле
Добавлено (21.04.2013, 21:59)
---------------------------------------------
Сделал так
Код
var unite01 : GameObject;
function Update ()
{
var plane = Plane(transform.position, Vector3.up);
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
var distance: float;
if (plane.Raycast(ray, distance)){
var hitPoint = ray.GetPoint(distance);
transform.position=hitPoint;
if(Input.GetMouseButtonDown(0))
{
var newUnit = Instantiate(unite01, hitPoint, transform.rotation);
Destroy(gameObject);
}
}
}
уже луче но GameObject дергается то в верх то в низ пока я вожу мвшкойДобавлено (21.04.2013, 23:13)
---------------------------------------------
Код
var unite01 : GameObject;
var smooth:int;
private var targetPosition:Vector3;
function Update () {
var playerPlane = new Plane(Vector3.up, transform.position);
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hitdist = 0.0;
if (playerPlane.Raycast (ray, hitdist)) {
var targetPoint = ray.GetPoint(hitdist);
targetPosition = ray.GetPoint(hitdist);
var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
if(Input.GetKeyDown(KeyCode.Mouse0))
{
var newUnit = Instantiate(unite01, targetPosition, targetRotation);
Destroy(gameObject);
}
transform.position.x = targetPosition.x;
transform.position.z = targetPosition.z;
transform.position.y = 0;
transform.rotation = targetRotation;
}
}
все получилось