private void Start() { // 컴포넌트 불러오기 m_Net = GameObject.Find("NetManager").GetComponent <InitNetManager>(); m_gr = GameObject.Find("UI_canvas").GetComponent <GraphicRaycaster>(); ped = new PointerEventData(null); // 숨기기 및 잠금 Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; mouseOut = false; // 방 날씨 설정 // - 낮 if (m_Net.m_weather == "Morning") { // 텍스쳐 변경 GameObject.Find("SkyDome").GetComponent <MeshRenderer>().material.mainTexture = m_Morning; m_light.color = new Color32(248, 198, 158, 255); m_weather_passive = -1; } // - 저녁 if (m_Net.m_weather == "Evening") { // 텍스쳐 변경 GameObject.Find("SkyDome").GetComponent <MeshRenderer>().material.mainTexture = m_Evening; m_light.color = new Color32(255, 28, 0, 255); m_weather_passive = 0; } // - 밤/새벽 if (m_Net.m_weather == "Dawn") { // 텍스쳐 변경 GameObject.Find("SkyDome").GetComponent <MeshRenderer>().material.mainTexture = m_Dawn; m_light.color = new Color32(82, 2, 142, 255); m_weather_passive = 1; } // 아이템 생성 for (int i = 0; i < 5; ++i) { var new_Item = (GameObject)Instantiate(m_Item_Prefabs, new Vector3(m_Net.m_items_x[i], m_Net.m_items_y[i], m_Net.m_items_z[i]), Quaternion.identity); new_Item.name = "Item_num/" + (i + 1); // 오브젝트 이름 설정 } // 플레이어 UI 설정 if (m_Net.m_team_num % 2 == 0) // 루비 { GameObject.Find("character_img").transform.GetComponent <Image>().sprite = m_R_UI_chr_imgs[m_Net.r_chr_num[m_Net.m_team_num - 1] - 1]; // 오브젝트 캐릭터 이미지 설정 } if (m_Net.m_team_num % 2 == 1) // 사파이어 { GameObject.Find("character_img").transform.GetComponent <Image>().sprite = m_S_UI_chr_imgs[m_Net.r_chr_num[m_Net.m_team_num - 1] - 1]; // 오브젝트 캐릭터 이미지 설정 } // 플레이어 생성 for (int i = 0; i < 4; ++i) { // 본인 플레이어 생성 if (m_Net.m_team_num == i + 1) { var new_Player = (GameObject)Instantiate(m_user_Character_Prefabs[m_Net.r_chr_num[i] - 1], UnityEngine.Vector3.zero, Quaternion.identity); new_Player.name = "Team_num/" + (i + 1); // 오브젝트 이름 설정 new_Player.transform.localPosition = new UnityEngine.Vector3(m_Net.r_posX[i], m_Net.r_posY[i], m_Net.r_posZ[i]); // 오브젝트 위치 설정 new_Player.transform.eulerAngles = new UnityEngine.Vector3(m_Net.r_rotX[i], m_Net.r_rotY[i], m_Net.r_rotZ[i]); // 오브젝트 방향 설정 // 플레이어 팀 circle 설정 if ((i + 1) % 2 == 0) // 루비 { new_Player.transform.GetChild(2).GetComponent <MeshRenderer>().material = m_R_Circle; m_Net.max_hp = 120; // 루비팀 특성상 최대 체력 상승 } if ((i + 1) % 2 == 1) // 사파이어 { new_Player.transform.GetChild(2).GetComponent <MeshRenderer>().material = m_S_Circle; m_Net.max_hp = 100; // 사파이어 체력 } } // 그 외 플레이어 생성 else { var new_Player = (GameObject)Instantiate(m_other_Character_Prefabs[m_Net.r_chr_num[i] - 1], UnityEngine.Vector3.zero, Quaternion.identity); new_Player.name = "Team_num/" + (i + 1); // 오브젝트 이름 설정 new_Player.transform.localPosition = new UnityEngine.Vector3(m_Net.r_posX[i], m_Net.r_posY[i], m_Net.r_posZ[i]); // 오브젝트 위치 설정 new_Player.transform.eulerAngles = new UnityEngine.Vector3(m_Net.r_rotX[i], m_Net.r_rotY[i], m_Net.r_rotZ[i]); // 오브젝트 방향 설정 // 플레이어 팀 circle 설정 if ((i + 1) % 2 == 0) // 루비 { new_Player.transform.GetChild(2).GetComponent <MeshRenderer>().material = m_R_Circle; } if ((i + 1) % 2 == 1) // 사파이어 { new_Player.transform.GetChild(2).GetComponent <MeshRenderer>().material = m_S_Circle; } } } // 플레이어 입력 컴포넌트 연결 m_Net.playerInput = GameObject.Find("Team_num/" + m_Net.m_team_num).GetComponent <PlayerInput>(); // 날씨 영향 시작 StartCoroutine(Weather_Passive()); if (m_Net.new_player) // 도중 입장 플레이어의 경우 { // 임시 플레이어 컨트롤 잠금 GameObject.Find("Team_num/" + m_Net.m_team_num).GetComponent <PlayerController>().Dead = true; // 본인의 색깔 변경 GameObject.Find("Team_num/" + m_Net.m_team_num).GetComponent <PlayerController>().transform.GetChild(0).GetComponent <SkinnedMeshRenderer>().material.SetColor("_Color", new Color32(255, 215, 100, 255)); // 무적 5초 후 해제 GameObject.Find("Team_num/" + m_Net.m_team_num).GetComponent <ResponsePlayer>().FirstResponse(); // 타이머 시작 및 업데이트 if (m_Net.new_Sec < 10) { GameObject.Find("Time_text").GetComponent <Text>().text = m_Net.new_Min + " : 0" + ((int)m_Net.new_Sec - 4); // 카운터 만큼 제거 } else { GameObject.Find("Time_text").GetComponent <Text>().text = m_Net.new_Min + " : " + ((int)m_Net.new_Sec - 4); // 카운터 만큼 제거 } GameObject.Find("Time_text").GetComponent <timer>().GetTimerStart(m_Net.new_Min, m_Net.new_Sec); // 팀 점수 업데이트 if (m_Net.new_S_score < 10) { GameObject.Find("Sapphire_Score_text").GetComponent <Text>().text = "0" + m_Net.new_S_score.ToString(); } else { GameObject.Find("Sapphire_Score_text").GetComponent <Text>().text = m_Net.new_S_score.ToString(); } if (m_Net.new_R_score < 10) { GameObject.Find("Ruby_Score_text").GetComponent <Text>().text = "0" + m_Net.new_R_score.ToString(); } else { GameObject.Find("Ruby_Score_text").GetComponent <Text>().text = m_Net.new_R_score.ToString(); } } else // 그 외 일반 플레이어 { // 게임 시작 호출 m_Net.GameStart(); } }
private InitNetManager m_Net; // 네트워크 컴포넌트 private void Start() { m_Net = GameObject.Find("NetManager").GetComponent <InitNetManager>(); }