You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.8 KiB
78 lines
1.8 KiB
3 years ago
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using AX.MessageSystem;
|
||
|
using System;
|
||
|
|
||
|
/// <summary>
|
||
|
/// 战术模型选中处理
|
||
|
/// </summary>
|
||
|
public class ObjSelected : MonoBehaviour {
|
||
|
|
||
|
public bool selected;
|
||
|
|
||
|
// Use this for initialization
|
||
|
void Start () {
|
||
|
MessageDispatcher.AddListener("RADIOSELECT", RadioSelected);
|
||
|
MessageDispatcher.AddListener("CANCEL_RADIOSELECT", CancelRadioSelected);
|
||
|
}
|
||
|
|
||
|
private void RadioSelected(IMessage obj)
|
||
|
{
|
||
|
var selectObjchild = (GameObject)obj.Data;
|
||
|
|
||
|
if (selectObjchild.transform.parent.gameObject == gameObject)
|
||
|
{
|
||
|
DoSelect(gameObject);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void DoSelect(GameObject obj)
|
||
|
{
|
||
|
selected = true;
|
||
|
SelectedObjs.selectedObj = obj;
|
||
|
|
||
|
var layer = LayerMask.NameToLayer("ContourProfile");
|
||
|
SetLayerRecursively(obj, layer);
|
||
|
}
|
||
|
|
||
|
private void SetLayerRecursively(GameObject obj, int newLayer)
|
||
|
{
|
||
|
obj.layer = newLayer;
|
||
|
foreach (Transform child in obj.transform)
|
||
|
{
|
||
|
SetLayerRecursively(child.gameObject, newLayer);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void CancelRadioSelected(IMessage obj)
|
||
|
{
|
||
|
var selectedObj = (GameObject)obj.Data;
|
||
|
|
||
|
if (selectedObj == gameObject)
|
||
|
{
|
||
|
DoDisSelect(gameObject);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void DoDisSelect(GameObject obj)
|
||
|
{
|
||
|
selected = false;
|
||
|
SelectedObjs.selectedObj = null;
|
||
|
|
||
|
var layer = LayerMask.NameToLayer("Default");
|
||
|
SetLayerRecursively(obj, layer);
|
||
|
}
|
||
|
|
||
|
// Update is called once per frame
|
||
|
void Update () {
|
||
|
|
||
|
}
|
||
|
|
||
|
private void OnDestroy()
|
||
|
{
|
||
|
MessageDispatcher.RemoveListener("RADIOSELECT", RadioSelected);
|
||
|
MessageDispatcher.RemoveListener("CANCEL_RADIOSELECT", CancelRadioSelected);
|
||
|
}
|
||
|
}
|