멋사교육

멋쟁이사자처럼부트캠프 유니티 게임 개발 5기 3일차

나른한여우 2025. 5. 15. 18:08

C#

 

C#을 시작하기에 앞서 visual studio의 단축키등 알아봄

C#이 생각보다는 C++과 달라서 놀랐고 오히려 java와 비슷한 부분이 많다고 생각됨

기본적인 단축키

 

함수를 만들어보고 Main함수에서 함수 호출

함수선언 및 호출

 

변수 선언과 초기화, 기본적인 데이터 타입에 대해서 정리해보고 다시 한번 알아보는 시간

var변수란 변수의 자료형을 자동으로 저장해주는 타입

 ㄴ 선언과 동시에 초기화작업을 해줘야함!

데이터 타입

 

기본적인 정적, 멤버, 지역 변수에 대해 선언해보고 에러 확인

const, readonly, static등 상수로 선언하거나 정적으로 선언해 다른 함수에서 이용

 

const, static readonly

 

접근제한자, class

public, private 두 가지 제한자에 대해 확인하고 class를 생성해 객체 인스턴스 생성

클래스 변수이름 = new 클래스(); 로 생성

클래스변수 뒤에 .을 찍어 멤버변수에 접근해 데이터 입력

 

접근제한자, class 객체 인스턴스 생성

 

 

class내에 함수선언 및 호출

Console에 출력할때 ("문자열" + 변수)가 아닌 ($"문자열 {변수}")로 출력가능

 

클래스 함수 호출과 문자열 출력 $

 

생성자, 소멸자, 함수 및 클래스에 매개변수 활용

기본적인 if 조건문 활용과 증감연산자 추가

namespace StudyOne
{
    class Player
    {
        //public <-> private 접근제한자
        //공공의      개인의
        //변수나 함수의 보안 레벨 설정
        public string name = "";
        public int level = 1;
        public int maxLevel = 10;

        public Player()
        {

        }

        //생성자 : 클래스를 활용해서 객체 인스턴스 생성할 때 1번 실행되는 기능 (메모리 할당 받을 때)
        public Player(string name, int level)
        {
            this.name = name;
            this.level = level;
            Console.WriteLine("Player 생성!");
            Console.WriteLine($"캐릭터 : {this.name}, 레벨 : {this.level} 생성완료");
        }


        //소멸자 : 만들어진 객체 인스턴스를 파괴할 때 1번 실행되는 기능 (메모리 소멸 될때)
        ~Player()
        {
            Console.WriteLine("Player 소멸!");
        }

        //매개변수 name, level
        //매개변수 : 함수에서 사용할 재료
        public void CreatePlayer(string name, int level)
        {
            this.name = name;
            this.level = level;
            //Console.WriteLine("캐릭터 : " + name + ", 레벨 : " + level + " 생성완료");
            Console.WriteLine($"캐릭터 : {this.name}, 레벨 : {this.level} 생성완료");
        }

        public void LevelUp()
        {
            //조건문
            if(level < maxLevel)
            {
                //증감연산자
                level++;
                Console.WriteLine($"{name} 캐릭터 레벨업!!, 현재 레벨 {level}");
            }
            else
            {
                Console.WriteLine($"{name} 캐릭터는 이미 최대 레벨입니다.");
            }
            
        }
    }

    internal class Program 
    {
        static void Main(string[] args) 
        {
            //player1 이름을 가진 객체(Object) 인스턴스 생성
            //변수선언          변수할당
            //Player player1 = new Player();
            Player player1 = new Player("lazyfoxx", 5);
            //player1.name = "lazyfoxx96"; //string
            //player1.level = 100; //int
            //player1.CreatePlayer("lazyfoxx", 100);

            player1.LevelUp();

            //player2 이름을 가진 객체(Object) 인스턴스 생성
            //Player player2 = new Player();
            Player player2 = new Player("lazyfoxx2", 10);
            //player2.name = "Gamer2";
            //player2.level = 50;
            //player2.CreatePlayer("Gamer", 65);

            player2.LevelUp();

        }

    }
}