using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using ZenFulcrum.EmbeddedBrowser;
///
/// 模型点击视角居中,单体化展示
///
public class IconClick : MonoBehaviour
{
//0:显示设备信息;1:显示人员信息;2:摄像头
public int type;
//漫游相机
public Camera _RoamCamera;
//旋转360
public Camera _RoundCamera;
//是否可点击
public bool isenable=false;
string name;
void Start()
{
//if (_camera==null) { _camera = Camera.main; }
}
private void Awake()
{
}
void Update()
{
//RaycastHit hit;
//向鼠标点击的位置发射一条射线 && 射线检测到的物体是当前挂着该脚本的物体
//if (Physics.Raycast(_camera.ScreenPointToRay(Input.mousePosition), out hit))
//{
// if (Input.GetMouseButtonDown(0))
// {
// if (hit.collider.name == transform.name)
// {
// if (type == 0)
// {
// //Debug.Log("!!!!!!!");
// //Main.intance.m_htmlPanel.CallFunction("showDeviceInfo");
// }
// }
// }
// }
}
private void OnMouseUp()
{
if (EventSystem.current.IsPointerOverGameObject())
{
Debug.Log("鼠标在UI上");
return;
}
ViewCenter();
if (!isenable)
return;
if (type == 0)
{
//Main.intance.m_htmlPanel.CallFunction("showDeviceInfo");
Main.intance.m_htmlPanel.CallFunction("U3DShowEquipmentDetails",0);
}
if (type == 1)
{
//Main.intance.m_htmlPanel.CallFunction("showPeopleInfo");
Main.intance.m_htmlPanel.CallFunction("U3DShowPeopleDetails",0);
}
if (Main.intance.CurentSingleObj != null)
{
Main.intance.CurentSingleObj.layer = LayerMask.NameToLayer("Default");
}
Main.intance.CurentSinglePage.SetActive(true);
//将当前物体设置为单体化360观察的物体
Main.intance.CurentSingleObj = gameObject;
_RoundCamera.GetComponent().SetTarget(transform);
//_RoundCamera.GetComponent().SetTarget(transform.GetComponent().bounds.center);
gameObject.layer = LayerMask.NameToLayer("single360");
Main.intance.GaussianBlurPanel.transform.GetChild(2).Find("right").gameObject.SetActive(true);
//_RoamCamera.enabled = false;
//_RoundCamera.enabled = true;
//测试
//ViewCenter();
}
///
/// 视角居中
///
void ViewCenter()
{
Debug.Log("model"+transform.parent.name);
//获取模型中心点位置(加上模型方向*3)
Vector3 playerPos = transform.parent.position+transform.parent.forward*3;
Quaternion angle = Quaternion.Euler(transform.parent.eulerAngles.x, transform.parent.eulerAngles.y - 180, transform.parent.eulerAngles.z);
Debug.Log("pos" + playerPos + ";angle" + angle);
//Main.intance.mainCamera.GetComponent().CamerMoveAnim(playerPos, angle);
Main.intance.CameraMoveAnim(playerPos, angle);
}
}