Unity_2기 내일배움캠프 TIL

Unity_2기 1주차 (231102)

잼잼재미 2023. 11. 2. 19:48

오늘은 팀 프로젝트 최적화를 진행하고 내일의 발표를 위해 마무리 작업을 했다.

어제 하드코딩 했던 것을 조원들의 도움을 받아서 MemberCheck 스크립트의 코드를 수정했다. 

 

● 기존 코드

public class MemberCheck : MonoBehaviour
{
    public GameObject[] namePanel = new GameObject[6];

    public void CharactorActive(string name)
            {

                switch (name)
                 {
                     case "charactor0": 
                         namePanel[0].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     case "charactor1": 
                         namePanel[3].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     case "charactor2": 
                         namePanel[1].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     case "charactor3": 
                         namePanel[2].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     case "charactor4": 
                         namePanel[4].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     case "charactor5": 
                         namePanel[5].gameObject.GetComponent<SpriteRenderer>().color = new Color(0, 0, 0, 200 / 255f);
                         break;
                     default:
                         break;
                 }
            }
}

 

● 수정 코드

 public class MemberCheck : MonoBehaviour
    {      
        [Serializable]
        public class NameTag
        {         
            public int memberNumber;
            public Image checkerBox;
            public Image checker;
        }

        [SerializeField] private Profile profile;
        public List<NameTag> memberList = new List<NameTag>();

        private void Start()
        {
            // 체크표시 초기화
            foreach (NameTag member in memberList)
            {
                member.checker.gameObject.SetActive(false);
            }
        }
       
        public void MatchMember(string memberName)
        {        
            int nameNumber = int.Parse(memberName);
            Checker(nameNumber);          
        }

        private void Checker(int nameNumber)
        {         
            foreach (NameTag member in memberList)
            {
                if (member.memberNumber == nameNumber)
                {
                    member.checkerBox.GetComponent<Image>().color = new Color(0.0392f, 1f, 0f, 1f);
                    member.checker.gameObject.SetActive(true);   
                    profile.ProfileOpen(member.memberNumber);
                }
            }         
        }
    }

 

● 변경 내용

1. NameTag class 객체 생성

2. CharactorActive 함수를 MatchMember, Checker 함수 두개로 나눔

3. 기존 오브젝트 색깔 변경 -> 체크오브젝트 활성화/비활성화

4. GameObject 배열 -> List 사용

5. foreach 사용

 

조원들의 도움을 받아서 코드 내용을 대폭 수정했다.

오늘은 새롭게 알게된 내용이 많아서 공부를하고 정리하였다.

앞으로 새로 배운 내용은 나중에 찾아볼 수 있도록 티스토리에 정리를 할 예정이다.

 

그리고 조원들과 함께 프로젝트를 최종 완성했다.

내일 있는 발표를 위해 시연영상 제작을 맡아서 제작하였다.

https://www.youtube.com/watch?v=rzwtGhq6JuQ

이러한 시연영상을 찍는 것도 처음이라 많이 어색하고 힘들었다.

하지만 제작이 끝나니 조원들과 함께 만든 작업물을 한번에 확인할 수 있어서 뿌듯하고 좋았다.

내일 있을 발표를 잘 마무리하고 다음 프로젝트에서는 이번에 구현하지 못한 기능들을 추가해서 더 퀄리티 높은 게임을 만들고 싶다!

'Unity_2기 내일배움캠프 TIL' 카테고리의 다른 글

Unity_2기 2주차 (231106)  (0) 2023.11.06
Unity_2기 1주차 (231103)  (0) 2023.11.03
Unity_2기 1주차 (231101)  (1) 2023.11.02
Unity_2기 1주차 (231031)  (0) 2023.11.02
Unity_2기 1주차 (231030)  (0) 2023.11.02