Quote (Eye)
Ребят, помогите написать скрипт.
При наведении на спец. объект (тег) и нажатии ЛКМ он исчезает. При нажатии в любом месте опять ЛКМ, он появляется на том месте, куда навели. Нужно чтобы еще он придерживался спец. высоты.
Нужно копать в сторону лучей - но я до сей поры с ними не разобрался.
Заранее благодарю.
как-то примерно так:
Code
private GameObject objToHideInsert;
if (Input.GetMouseButtonDown(0) && (objToHideInsert == null))
{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit rcHit;
if (Physics.Raycast (ray, out rcHit))
{
if (rcHit.collider.gameObject.tag = "TheTag")
{
objToHideInsert = rcHit.collider.gameObject;
objToHideInsert.transform = new Vector3(99999,99999,99999); // или любой другой код чтобы скрыть объект с поля зрения.
}
}
}
Для того чтобы поставить объект на определенную высоту (если я правильно понимаю что ты хочешь реализовать) тебе нужна плоскость и делать проверку на пересечение с ней. На всех объектах должны быть коллайдеры.
Code
if (Input.GetMouseButtonDown(0) && (objToHideInsert != null))
{
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit rcHit;
if (Physics.Raycast (ray, out rcHit))
{
if (rcHit.collider.gameObject.name = "planeForRaycast")
{
objToHideInsert.position = rcHit.point;
objToHideInsert = null;
}
}
}
Либо через это: http://unity3d.com/support/documentation/ScriptReference/Plane.Raycast.html