대외활동/starters 부트캠프 feat.웅진씽크빅

유데미 스타터스 취업 부트캠프 유니티 1기 3주차 학습 일지 -2

Heeyeon Choi 2022. 7. 10. 14:08
728x90
728x90

클래스란? 

: 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화

 

속성(attribute) = 변수 ==> 명사
행위(behavior) = 메서드 ==> 동사

 

 

변수?

    public int _lv = 1;
    public int _hp = 650;
    public int _mp = 0;

 

메소드?

   public void Move () // 접근한정자 반환형(리턴형) 메서드이름 매개변수
    {
        // 뭐할지 적자!   
    }

 

1. 메소드의 활용

// Example 1 메소드 활용
    public int Add(int a, int b) // 접근한정자 반환형(리턴형) 메서드이름 매개변수
    {
        return a + b;
    }

    public void MyLog(string logMsg)
    {
        Debug.Log("Time : " + DateTime.Now + "/ Msg:" + logMsg);
        //return; << 생략
    }

 

2. 오버로딩

 // Example 2 오버로딩 
    public float Add(float a, float b)
    {
        return a + b;
    }
    
    public double Add(double a, double b)
    {
        return a + b;
    }

 

3. 한정자 public, private

    public int GetHp()
    {
        return _hp;
        SetLvUp();
    }
    
    private void SetLvUp()
    {
        _lv++;
    }

 

4. 생성자

 public Champion(int hp, int mp)
     {
         _hp = hp;
         _mp = mp;
         Debug.Log("챔피언이 생성되었습니다.");
     }

 

5. 소멸자

     ~Champion()
     {
         Debug.Log("Free");
         _hp = 0;
         _mp = 0;
     }

 

6. 속성(Property)

     public int HP
     {
         get
         {
             return _hp;
         }
         set
         {
             if (value < 0)
             {
                 value = 0;
             }
             _hp = value;
         }
     }

-> visual studio 에서 "props" 작성하고 tab 두 번 누르면, 자동완성 됩니다.

 

7. virtual

-> virtual 키워드는 메서드, 속성, 인덱서 또는 이벤트 선언을 수정하고 파생 클래스에서 재정의하도록 허용하는 데 사용

 public class Shape
 {
        public const double PI = Math.PI;
        protected double _x, _y;

        public Shape()
        {
        }

        public Shape(double x, double y)
        {
            _x = x;
            _y = y;
        }

        public virtual double Area()
        {
            return _x * _y;
        }
 }

 public class Circle : Shape
 {
        public Circle(double r) : base(r, 0)
        {
        }

        public override double Area()
        {
            return PI * _x * _x;
        }
 }

 

cf. json 파일 사용하기

c# -> unity Jsonutility -> 최소한 기능 제공
NewtonsoftJson
LitJson
Json.Net

 

 

직렬화 -> serializable

: 직렬화는 객체의 필드에 저장된 값을 메모리에 저장 가능하도록 바꾸는 것

   (0과 1인 이진 형식, JSON, XML, 등 텍스트 형식도 가능)

[Serializable]
class MyClass
{
    //
}

 

 

 

——————————————————————————

유데미코리아 바로가기 : https://bit.ly/3b8JGeD

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

728x90