• 변수 이름을 지을 때 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
//1. 변수
int x = 100;

//2. 자료형
/*
sbyte 정수 자료형 (-128 ~ +127) - 1바이트
byte 정수 자료형 (0 ~ +255) - 1바이트
short 정수 자료형 (-3만 ~ +3만) - 2바이트
ushort 정수 자료형 (0 ~ +6만) - 2바이트
integer 정수 자료형 (-20억 ~ +20억) - 4바이트
long 정수 자료형 - 8바이트
*/

나는 이때까지 정수 자료형은 integer 밖에 없는 줄 알았는데 int 말고도 몇가지 더 존재 했다.

아마 int가 가장 무난하기 때문에 정수 자료형을 int로 보통 가르쳤지 않나 싶다.

여기서 'long이 가장 범위가 넓으니 정수 자료형을 무조건 long으로 쓰면 좋지 않나?' 라는 생각이 들 수 있다.

하지만 longint로 차지하는 공간의 두배를 차지하기 때문에 나중이 되어서는 굉장히 많은 용량을 잡아 먹을수도 있다.


실수 자료형 또한 float 말고도 다른 자료형들이 존재했다.

//3. 실수 자료형
//float (실수 뒤에 f를 붙여야함)
float f = 4.0000001f;
//double (실수 뒤에 f를 붙이지 않아도 됨)
double d = 4.0000001;
//decimal (실수 뒤에 m을 붙여야함)
decimal m = 4.0000001m;

float보다 double이 오차가 더 작게 발생하며, decimal은 거의 오차가 발생하지 않는다. => 아주 정밀한 계산을 할 때에는 decimal을 사용한다.


//3. 문자 자료형
string s = "asdfwe!13@aㅁㄴ"; // " "
char c = 'A'; //' ', 유니코드(0065) 숫자가 기록됨. 한 글자만 가능.

int a = 100;
string b;
b = a.Tostring(); //강제로 정수를 문자로 변환

강제로 문자를 정수로 변환시키는 함수도 존재한다. int.Parse( )인데, 이러한 강제성을 가지는 것들은 조심해서 써야한다. format이 다를 수 있기 때문이다.


오늘은 내가 가장 힘들어하는 교양 과제를 하다가 영혼이 나간 상태로 몇시간을 허비해버렸다.

그래서 자연스레 내 개인 공부 시간도 줄었다ㅠㅠ..

내일은 목요일로 일주일 중 가장 시간표가 빡세지만,

오늘보다는 조금 더 많이 공부할 것!

+ 게임 기획 idea 시간 가질것

(스포를 하자면 저번 계획 때 3D슈팅 게임 만들 것 같다고 했었는데 그러지 않고 2D로 넘어가 게임을 만들게 될 것 같다. 자세한 이야기는 게임기획서와 함께 찾아오는걸로~)

 

 

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

Visual Studio Code 자동 완성이 되지 않는 오류  (0) 2022.07.12
0404) C# 기초 - 3  (0) 2022.04.04
0401) C# 기초 - 2  (0) 2022.04.01
메모장  (0) 2022.03.30
0326(기초 강좌 final)  (0) 2022.03.28
  • C# 파일 제목에서 첫 글자는 대문자로, 뛰어쓰기는 X
  • float 변수 = 숫자f
  • 프로그램이 제대로 실행되지 않을 때는 중괄호 매칭 체크
  • RigidBody 관련 코드는 FixedUpdate에 작성
  • 점프 입력이 원활하게 안되는 문제 발생 => Input 클래스 관련은 Update에 작성
 

 

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

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

[게임 플레이 영상]

/* 호우 드디어 커리 하나 클리어!;

비록 따라보며 만든거이지만 뿌듯하고 만족스럽다;

어느정도 c#에 대해 익힌 것 같기도 하지만 아직 미숙한 점은 많은 것 같다;

다음은 무엇을 할지 고민중이다;

이 글 다음에는 이제 무엇을 할지 고민을 하고 다음 계획을 세우는 글을 쓰도록 하겠다; */

 

 

0318~0328는 인스타에 업로드 했던 내용을 그대로 재업로드 한 것입니다.

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

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

+ Recent posts