}//홀로그램 인식시 데이터 흡수 void CNN_cam_place(GameObject target) { TransferableDataObject Data = target.GetComponent <TransferableDataObject>(); if (machine_Obj_locating_target != null) { Circuit script_C = machine_Obj_locating_target.GetComponent <Circuit>(); InteractiveObj_MultiTag script_I = machine_Obj_locating_target.GetComponent <InteractiveObj_MultiTag>(); if ((script_C != null && script_C.signal_Type != 0) || (script_I != null && script_I.ObjType == InteractiveObj_MultiTag.AllType.Tower_Table)) { //Instantiate(placing_Tower, aimed_circuit_position, machine_Obj_locating_target.transform.rotation); Connectec_Data_Obj.transform.position = aimed_circuit_position; Connectec_Data_Obj.transform.rotation = machine_Obj_locating_target.transform.rotation; target.SetActive(true); //Connectec_Data_Obj.GetComponent<function_CNN>().Classifier_Placed(machine_Obj_locating_target); Connectec_Data_Obj.gameObject.SetActive(true); Connectec_Data_Obj.GetComponent <MagneticMachine>().Classifier_Placed(machine_Obj_locating_target); Connectec_Data_Obj.GetComponent <Machine_Effect>().Get_Signal(true); Connectec_Data_Obj = null; aim_Mark_obj.transform.position = Vector3.zero; module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); } }//회로 위에 배치 else if (Data != null) { if (Data.ID % 100 == 0 && Data.IsTransferPossible) { Data.OnDataTransfer(module_Buffer); Data.OnMachineDataTransfer(Connectec_Data_Obj); module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; Connectec_Data_Obj = null; } } //모듈에 배치 } //회로위에 장치 배치 신호
private int Target_Distinguishing(GameObject target) { int ui_Num = 0; // 0 : none, 1 : Data Get, 2 : Data Transfer, 3 : Get Machine, 4 : Machine Shoot, 5 : Machine Shoot & Data Get, 6 : Machine Set on Circuit, 7 : Data Hologram Identify, 8 : Drawing Panel, 9 : Circuit_Drawing, 10 : Timer TransferableDataObject ML = target.GetComponent <TransferableDataObject>(); Puzzle_Part_Hologram PPH = target.GetComponent <Puzzle_Part_Hologram>(); MagneticMachine TT = target.GetComponent <MagneticMachine>(); HologramObject DT = target.GetComponent <HologramObject>(); Drawing Draw = target.GetComponent <Drawing>(); Puzzle_Drawing p_Draw = target.GetComponent <Puzzle_Drawing>(); Timer Tm = target.GetComponent <Timer>(); if (ML != null) { if (gun_Data_Buffer == 0 && ML.ID % 100 != 0 && ML.IsTransferPossible) { ui_Num = 1; } else if (gun_Data_Buffer != 0 && ML.ID % 100 == 0 && ML.IsTransferPossible) { ui_Num = 2; } } else if (Tm != null) { ui_Num = 10; } else if (PPH != null) { if (gun_Data_Buffer == 0 && PPH.hologram_Part_ID != 0 && PPH.module_Linked.GetComponent <TransferableDataObject>().IsTransferPossible) { ui_Num = 1; } //홀로그램 분해 } //퍼즐 홀로그램 조준 else if (TT != null) { if (TT.TowerFunc == MagneticMachine.TowerStyle.Button_Sig1 || TT.TowerFunc == MagneticMachine.TowerStyle.Button_Sig2 || TT.TowerFunc == MagneticMachine.TowerStyle.Button_Sig3) { ui_Num = 11; } if (gun_Data_Buffer == 0) { //Debug.Log("From player_shot Get Cnn_machine"); if (TT.TowerFunc == MagneticMachine.TowerStyle.CNN) { if (TT.Circuit_On) { ui_Num = 5; } else { ui_Num = 3; } } else if (TT.TowerFunc == MagneticMachine.TowerStyle.Electric) { if (TT.Circuit_On) { ui_Num = 5; } else { ui_Num = 3; } } } else { if (TT.TowerFunc == MagneticMachine.TowerStyle.CNN) { if (TT.Circuit_On) { ui_Num = 4; } else { ui_Num = 0; } } else if (TT.TowerFunc == MagneticMachine.TowerStyle.Electric) { if (TT.Circuit_On) { ui_Num = 4; } else { ui_Num = 0; } } } }//인식기 조준 else if (DT != null) { if (ray_Hit_Obj.distance < 10) { ui_Num = 7; } } else if (Draw != null) { ui_Num = 8; } else if (p_Draw != null) { ui_Num = 9; } else { if (Machine_Circuit_Check) { ui_Num = 6; } else { ui_Num = 0; } } return(ui_Num); }
} //회로위에 장치 배치 신호 public void Module_buffer_return() { if (module_Buffer == 0) { Debug.Log("From player_shot 반환할 값이 없습니다"); } else if (module_Buffer <= 30) { previous_script_ML.OnDataTransfer(module_Buffer); module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; Debug.Log("From player_shot 모듈 반환"); } else if (module_Buffer <= 50) { if (previous_script_ML != null) { previous_script_ML.OnMachineDataTransfer(Connectec_Data_Obj.GetComponent <MagneticMachine>()); previous_script_ML.OnDataTransfer(module_Buffer); } else { Connectec_Data_Obj.gameObject.SetActive(true); } Connectec_Data_Obj = null; module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; Debug.Log("From player_shot 데이터 홀로그램 반환"); } else if (module_Buffer < 90) { previous_script_ML.OnDataTransfer(module_Buffer); module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; Debug.Log("From player_shot 조립 홀로그램 반환"); } else if (module_Buffer <= 99) { if (previous_script_ML != null) { previous_script_ML.OnDataTransfer(module_Buffer); previous_script_ML.OnMachineDataTransfer(Connectec_Data_Obj.GetComponent <MagneticMachine>()); } else { Connectec_Data_Obj.gameObject.SetActive(true); Connectec_Data_Obj.GetComponent <MagneticMachine>().Classifier_Placed(Connectec_Data_Obj.GetComponent <MagneticMachine>().circuit_Obj); Connectec_Data_Obj.GetComponent <Machine_Effect>().Get_Signal(true); aim_Mark_obj.transform.position = Vector3.zero; } Connectec_Data_Obj = null; module_Buffer = 0; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; Debug.Log("From player_shot 타워 반환"); } }//데이터 복귀시키기
}//조준점 근처 회로 인식 public void module_InOut(GameObject target) { TransferableDataObject ML = target.GetComponent <TransferableDataObject>(); Puzzle_Part_Hologram PPH = target.GetComponent <Puzzle_Part_Hologram>(); MagneticMachine magneticMachine = target.GetComponent <MagneticMachine>(); HologramObject DT = target.GetComponent <HologramObject>(); Machine_Effect ME = target.GetComponent <Machine_Effect>(); if (ML != null)//모듈 조준 { if (module_Buffer == 0 && ML.ID % 100 != 0 && ML.IsTransferPossible) { module_Buffer = ML.ID % 100; ML.OnDataTransfer(0); Gun_Module_script.GetSignal(module_Buffer); Connectec_Data_Obj = ML.ConnectedMachine; // 머신 전용 ML.DetachConnectedMachine(); // 머신 전용 if (module_Buffer == 90) { aim_Mark_obj = Hologram_Marker[0]; } else if (module_Buffer == 91) { aim_Mark_obj = Hologram_Marker[1]; } previous_script_ML = ML; } else if (module_Buffer != 0 && ML.ID % 100 == 0 && ML.IsTransferPossible) { ML.OnMachineDataTransfer(Connectec_Data_Obj); ML.OnDataTransfer(module_Buffer); module_Buffer = 0; Connectec_Data_Obj = null; Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; } }//모듈 조준 else if (PPH != null) { if (module_Buffer == 0 && PPH.hologram_Part_ID != 0 && PPH.module_Linked.GetComponent <TransferableDataObject>().IsTransferPossible) { //Debug.Log("From 'player_shot' DisAssemble"); module_Buffer = PPH.Get_Disassemble_Signal(); previous_script_ML = PPH.module_Linked.GetComponent <TransferableDataObject>(); Gun_Module_script.GetSignal(module_Buffer); } //홀로그램 분해 } //퍼즐 홀로그램 조준 else if (magneticMachine != null && ME != null) { if (module_Buffer == 0) { //Debug.Log("From player_shot Get Cnn_machine"); if (magneticMachine.TowerFunc == MagneticMachine.TowerStyle.CNN) { module_Buffer = 90; aim_Mark_obj = Hologram_Marker[0]; } else if (magneticMachine.TowerFunc == MagneticMachine.TowerStyle.Electric) { module_Buffer = 91; aim_Mark_obj = Hologram_Marker[1]; } Connectec_Data_Obj = magneticMachine; target.SendMessage("OnTransferToPlayer"); target.GetComponent <Machine_Effect>().Get_Signal(false); Gun_Module_script.GetSignal(module_Buffer); previous_script_ML = null; } }//인식기 조준 else if (DT != null && Test_DT_Identify) { if (module_Buffer == 0) { //Destroy(target); module_Buffer = DT.ID; Connectec_Data_Obj = magneticMachine; target.SendMessage("OnTransferToPlayer"); Gun_Module_script.GetSignal(module_Buffer); } } }//데이터 전송 & 흡수