123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using GameFramework.Event;
- using UnityEngine;
- public class ObTrainStudyCtrl : MonoBehaviour
- {
- private Ray _ray;
- private RaycastHit _raycastHit;
- public bool _learnTarget = false;
- private Dictionary<ObHardWaryType, RayCastColliders> _colliderList;
-
- private void Awake()
- {
- _colliderList = new Dictionary<ObHardWaryType, RayCastColliders>();
- for (int i = 1; i < 7; i++)
- {
- _colliderList.Add((ObHardWaryType)i,this.transform.Find($"{(ObHardWaryType)i}Collider").GetComponent<RayCastColliders>());
- }
- foreach (var item in _colliderList.Values)
- {
- item.SetMeshEnable(false);
- }
- }
- void Start()
- {
- _learnTarget = false;
- GameMain.Event.Subscribe(Ob_StartLearnTargetInfoEvent.EventId,StartLearn);
- }
- // Update is called once per frame
- void Update()
- {
- if (_learnTarget)
- {
- foreach (var item in _colliderList.Values)
- {
- item.SetMeshEnable(false);
- }
- _ray = Camera.main.ScreenPointToRay(Input.mousePosition);
- if (Physics.Raycast(_ray,out _raycastHit))
- {
- switch (_raycastHit.collider.gameObject.name)
- {
- case "SXTCollider":
- _colliderList[ObHardWaryType.SXT].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.SXT));
- break;
- case "MJCollider":
- _colliderList[ObHardWaryType.MJ].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.MJ));
- break;
- case "YWBJQCollider":
- _colliderList[ObHardWaryType.YWBJQ].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.YWBJQ));
- break;
- case "ZMCollider":
- _colliderList[ObHardWaryType.ZM].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.ZM));
- break;
- case "UPSCollider":
- _colliderList[ObHardWaryType.UPS].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.UPS));
- break;
- case "DHKZCollider":
- _colliderList[ObHardWaryType.DHKZ].SetMeshEnable(true);
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.DHKZ));
- break;
- default:
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.none));
- break;
- }
- }
- else
- {
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.none));
- }
- }
- }
- private void OnDestroy()
- {
- if (GameMain.Event.Check(Ob_StartLearnTargetInfoEvent.EventId, StartLearn))
- {
- GameMain.Event.Unsubscribe(Ob_StartLearnTargetInfoEvent.EventId,StartLearn);
- }
- }
-
- private void StartLearn(object sender,GameEventArgs e)
- {
- Ob_StartLearnTargetInfoEvent args = (Ob_StartLearnTargetInfoEvent)e;
- _learnTarget = args.start;
- }
- private void ReStartTrain(object sender,GameEventArgs e)
- {
- foreach (var item in _colliderList.Values)
- {
- item.SetMeshEnable(false);
- }
- GameMain.Event.Fire(this, Ob_TrainStudyShowTargetInfoEvent.Create(ObHardWaryType.none));
- }
- }
|