void Awake()
 {
     script_T           = GetComponent <MagneticMachine>();
     cam_Check_Distance = script_T.Target_DetectRange;
     cam_Head           = transform.GetChild(0).gameObject;
     node_in_Distance   = new GameObject[cam_Check_node_capacity];
     StartCoroutine(Cyclic_Result_Check());
     if (Connected_Monitor == null)
     {
         Debug.Log("From function_CNN 연결된 모니터 없어요 : " + this.gameObject);
     }
 }
Beispiel #2
0
 // Use this for initialization
 void Awake()
 {
     for (int i = 0; i < transform.childCount; i++)
     {
         if (transform.GetChild(i).tag == "Marker")
         {
             color_Sphere = transform.GetChild(i).gameObject;
         }
     }
     mt = color_Sphere.GetComponent <Renderer>().material;
     tower_test_script = GetComponent <MagneticMachine>();
 }
    }//데이터 전송 & 흡수

    public void Get_Hologram_Data(GameObject target)
    {
        HologramObject DT = target.GetComponent <HologramObject>();

        if (DT != null)
        {
            target.SendMessage("OnTransferToPlayer");
            if (module_Buffer == 0)
            {
                //Destroy(target);
                module_Buffer      = DT.ID;
                Connectec_Data_Obj = target.GetComponent <MagneticMachine>();

                Gun_Module_script.GetSignal(module_Buffer);
            }
            else
            {
                target.SendMessageUpwards("Get_Exception_Signal", target);
            }
        }
    }//홀로그램 인식시 데이터 흡수
    }//홀로그램 인식시 데이터 흡수

    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);
    }
    } //신호받으면 외관, m_ID 바꾸고 부모 오브젝트로 신호

    public void OnMachineDataTransfer(MagneticMachine machine)
    {
        m_ConnectedMachine = machine;
    }
 public void DetachConnectedMachine()
 {
     m_ConnectedMachine = null;
 }
    }     //회로위에 장치 배치 신호

    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);
            }
        }
    }//데이터 전송 & 흡수