• 변수 이름을 지을 때 intValue 처럼 길어지면 첫글자는 소문자로 쓰고, 중간 단어 첫글자는 대문자로 쓰도록 한다.
  • 함수의 첫글자는 대문자로 쓰도록 하자.

다음과 같이 말이다.

 

public class NewBehaviourScript : MonoBehaviour
{
int intValue;
float floatValue = 10.5f;
float floatValue2 = 20.5f;

void FloatToInt(float _parameter, float _parameter2, string _stringParm = "디폴트값") //함수 생성
{
    intValue=(int)(_parameter+_parameter2);
    print(intValue);
    print(_stringParm);
}

void Start()
{
	FloatToInt(floatValue, floatValue2);
}
}

 

public class에서 지정한 변수들은 함수안에서도 사용 가능하다.(전역변수이므로) 

먼저 함수를 만들어주고 void Start() 안에 함수를 적어주고 이 C# 스크립트를 main camera에 넣어주고 실행시키면 콘솔창에 문제 없이 print됨을 볼 수 있다.

void는 함수의 반환 값이 없을 때 사용한다. 반환 값이 있을 때에는 void대신 반환 값의 형태(int, float 등)를 적어주면 된다.

함수 내에서 다른 함수도 호출시킬 수 있다!

 


public class Test1
{
    private int a;
    public int b;
    public static int c; //공공의 공유자원, 정적 변수
}
public class NewBehaviourScript : MonoBehaviour
{
    Test1 a1;
    Test2 a2;
    
    void Abc()
    {
        a1.b = 5;
        a2.b = 10;
        print(a1.b);
        print(a2.b);
        
        Test1.c = 100; //공유자원은 클래스 자체에 접근
        print(Test1.c);
    }
    void Start() {
        Abc();
    }
}

 

이렇게 private으로 변수를 만들면 다른 class에서는 사용하지 못한다. 하지만 public으로 지정하면 다른 class에서도 사용이 가능하다. 물론 함수도 똑같이 적용된다.

그런데 이런 생각이 들 수 있다. 'public과 private을 왜 굳이 나눠야할까?'

public은 다른 곳에서도 쉽게 접근이 가능하다. 그러므로 보안적인 측면에서 좋지 못할 수 있다. 위의 b가 노출이 되어 제 3자에게 코드를 분석 당할 수 있으니까 말이다.

 

그런데 위 코드를 실행시켜보면 NullReferenceException이라는 오류가 뜨는 것을 확인할 수 있다. 이는 변수에 값이 아무것도 대입되지 않았다는 뜻이다. 

Test1 a1;은 선언만 한것이다. 그래서  Test1 a1 = new Test1(); 이렇게 새롭게 할당을 해주도록 수정해야 한다. 

 

c는 공유자원이므로 a1, a2모두 c의 값으로 100을 가지지만, b는 각각 다른 값을 가지는 것을 알 수 있다.

아직 이 부분이 헷갈리긴 한데, 여러번 실습 하다보면 익숙해지고 완벽하게 이해가 될 것이라고 생각한다.

 


print(a++) vs print(++a)

a++ : 먼저 출력을 한 뒤에 a에 1을 더한다.

 

++a : 출력하기전에 a에 1을 더하고 그 값을 출력한다. 


 

int input = 11;
int num = 10;

switch (input) //조건문
{
    case 10:
        print("input의 값이 10입니다.");
        break;

    case 11:
        print("input의 값이 11입니다.");
        break;
        
    default:
    	print("그 외의 경우");
        break;
}

 

switch case 조건문 다음에는 반드시 break를 써줘야한다. default는 위 케이스에 걸리지 않은 모든 경우에 해당한다.(마치 else와 같은)

 

 

int temp = input == num ? 50 : 100; //삼항 연산자

 

이 코드는 input과 num이 같을 경우에는 temp에 50을, 같지 않을 경우에는 100을 넣어준다는 뜻이다. 이를 삼항 연산자라고 부른다.

 


 

반복문 중 처음 알게된 반복문이 있는데 그것이 foreach문이다.

string text = "가나다라마";

foreach(char a in text)
{
	print(a);
}

 

이는 문자열을 한글자씩 쪼개준다. 즉 코드를 실행시키면 가, 나, 다, 라, 마가 한글자씩 출력될 것이다.

 


 

아 ~ 힘들다. 별로 한건 없는데 피곤하다. 그렇지만 아직까지는 공부에 대한 열정을 잃지 않았다!

오늘은 조금 길게 게임을 기획하고 아이디어를 내는 시간을 가졌다. 되게 마음에 드는 컨셉이 떠올랐고, 정말로 만들고 싶은 게임이 생겼다.

얼릉 실력을 키워서 정말 나만의 게임을 개발해봐야겠다.

그러기 위해선

달려~~~

'game > unity(C#)' 카테고리의 다른 글

Visual Studio Code 자동 완성이 되지 않는 오류  (0) 2022.07.12
0404) C# 기초 - 3  (0) 2022.04.04
0331) C# 기초 - 1  (0) 2022.03.31
메모장  (0) 2022.03.30
0326(기초 강좌 final)  (0) 2022.03.28

+ Recent posts