Всем привет)
У меня вопрос!
о GUILayer.HitTest
я для камеры игрока сделал такой скрипт - камера над игроком и не поворачивается и привязал кней управление:
кликаю мышью в пустое место на плане - ставлю объект (маркер),
кликаю на врага - атакую.
проблема в том, что когда кликаю на GUI ставиться и маркер , я попробовал сделать это с помощью GUILayer.HitTest, но ничего не получилось
вот скрипт , помогите решить такую задачу

using UnityEngine;
using System.Collections;
public class PlayerCamera: MonoBehaviour {
// положение камеры относительно Player
public float XCamera = -20;
public float YCamera = 30;
public float ZCamera = -20;
private Transform _thisTransform;
private Transform _playerTransform;
private Transform _MarkerTransform;
private GameObject _Marker;
private GameObject _player;
// Use this for initialization
void Start () {
// Получаем компонент трансформации объекта, к которому привязан данный компонент
_thisTransform = transform;
// Получаем компонент трансформации игрока и маркера
_player = GameObject.Find("Player");
_playerTransform = _player.transform;
_Marker = GameObject.Find("Marker");
_MarkerTransform = _Marker.transform;
}
public void OnGUI() {
// тестовая GUI область
GUILayout.BeginArea(new Rect(100, 100, 200, 200), GUI.skin.box);
GUILayout.Button("TEST");
GUILayout.EndArea();
}
// Update is called once per frame
void Update () {
GUILayer _GUILayer = Camera.main.GetComponent<GUILayer>();
if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Input.mousePosition) == null) {
Ray _ray = camera.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (_ray, out hit)) {
// атакуем Enemy
if (hit.collider.gameObject.tag == "Enemy") {
if (Vector3.Distance(_playerTransform.position, рit.collider.gameObject.transform.position) < 3.0f) {
hit.collider.gameObject.GetComponent<Enemy>().HealthInc();
}
}
// ставем маркер на поле
if (hit.collider.gameObject.tag == "Plane") {
_MarkerTransform.position = new Vector3(hit.point.x, 1, hit.point.z);
_Marker.active = true;
}
}
}
_thisTransform.position = new Vector3( _playerTransform.position.x+XCamera, YCamera, _playerTransform.position.z+ZCamera);
}
}