project
창고같은곳
hierarchy
창고에서 필요한것을 빼내서 쓴다.
console
에러가 나면 메세지를 출력한다
inspector
체크박스는 왠만하면 건들지 않는다. 퍼포먼스랑 관련이 있다.
유니티 코딩툴 정하기
edit에서 preference클릭후 external script editor에서 설정한다.
1. C++기본
//라이브러리파일을 가져옴.(미리 만들어놓은 코드)
//stdio.h 파일안에는 printf 라는 명령어가 있음.(화면출력담당)
#include<stdio.h>
//컨트롤F5 실행시키면 main을 찾아서 실행시킨다.
//c언어는 대소문자를 구분한다.
void main(void)
{
/*
//저장소(변수)= 숫자
int keyboard = 0;
printf("임의의 숫자를 입력해주세요:");
//키보드로 입력받아서 저장하는 명령어
scanf("%d", &keyboard);
//변수로 저장된 숫자를 출력해줍니다.
printf("입력한 숫자는 %d입니다.\n", keyboard);
*/
////////////////////정수형///////////////////////////////////////////////////
//정수형 숫자2개를 저장할곳
int num1 = 0;
int num2 = 0;
int sum = 0;
//숫자2개를 저장한다.
printf("첫번째 정수형 숫자를 입력해주세요:");
scanf("%d", &num1);
printf("두번째 정수형 숫자를 입력해주세요:");
scanf("%d", &num2);
//저장된 숫자를 더한다.
sum = num1 + num2;
//저장된 숫자를 출력한다.
printf("입력한 숫자의 합은 %d입니다.\n", sum);
////////////////////실수형///////////////////////////////////////////////////
//num1은 float이고, 123.45는 double이다. 캐스팅에러
//그래서 반드시 숫자 마지막에 f를 입력
//실수형 숫자2개를 저장할곳
float _num1 = 123.45f;
float _num2 = 0;
float _sum = 0;
//숫자2개를 저장한다.
printf("첫번째 실수형 숫자를 입력해주세요:");
scanf("%f", &_num1);
printf("두번째 실수형 숫자를 입력해주세요:");
scanf("%f", &_num2);
//저장된 숫자를 더한다.
_sum = _num1 + _num2;
//저장된 숫자를 출력한다.
printf("입력한 숫자의 합은 %.3f입니다.\n", _sum);
//출력을 유니티용으로 변환해보면 다음과 같다.
//Debug.Log("더한것은" + sum + "입니다.");
////////////////////나눗셈과 반올림값처리///////////////////////////////////////////////////
float __num1;
float __num2;
float __divide;
__num1 = 7.0f;
__num2 = 2.0f;
__divide = __num1 / __num2;
printf("나눈값은 %.2f 입니다.\n", __divide);
printf("나눈값의 반올림값은 %.0f 입니다.\n", __divide);
}
2. if문
#include<stdio.h>
void main(void)
{
//국어, 영어, 수학 점수를 저장할곳 (정수)
int korean, english, math;
//총점을 저장할곳 (정수)
int sum;
//평균을 저장할곳 (실수)
float avg;
int isExit = 0;
while (isExit == 0) {
//국어, 영어, 수학점수를 저장함
printf("국어점수를 입력해주세요:");
scanf("%d", &korean);
printf("영어점수를 입력해주세요:");
scanf("%d", &english);
printf("수학점수를 입력해주세요:");
scanf("%d", &math);
//한번에도 입력받을수 있다.
//scanf("%d %d %d", &korean, &english, &math);
//총점을 구해서 저장함
sum = korean + english + math;
//총점을 3으로 나눈결과를 평균에 저장함
//3으로 나누면 소숫점값이 없어지므로, 3.0으로 나누어야 소수점이하값을 얻을수 있다.
//아니면 강제 형변화을 시켜준다.
avg = (float)sum / 3.0f;
//avg = sum / 3.0f;
//평균점수를 출력한다.
printf("\n당신의 총점은 %d이고, \n평균점수는 %.1f입니다.\n\n", sum, avg);
//평균점수가 80이상인가? 그러면 합격이다.
//같다(==), 같지않다(!=)
//국어점수가 50점이상, 영어점수가 50점이상, 수학점수가 20점이상이면 합격
//우선순위 문제때문에 버그가 생기면 거의 잡을수 없기때문에 괄호를 잘 사용해야한다.
//불편하지만 말이야..ㅠㅠ
//==(같다라는 의미) =(한개일때는 입력을 의미한다)
if ((korean >= 50) && (english >= 50) && (math >= 20)) {
if (avg >= 80) {
//조건이 ok일때
printf("축하합니다. 당신은 합격입니다.");
}
else {
//조건이 no일때
printf("안타깝네요. 불합격입니다.");
}
}
else {
printf("평균점수와 상관없이 과락입니다.");
}
printf("\n\n");
printf("다시 하시겠습니까?(y:0/n:1)");
scanf("%d", &isExit);
}
}
2. 유니티에서 스크립트 만들고 넣어보기
애셋에 오른쪽 버튼을 누르면 스크립트를 만들수 있다.
이 만든 스크립트는 컴포넌트 추가에서 추가시킬수도 있고,
그냥 그래그해서 오브젝트에 넣어줄수도 있다.
모든 스크립트는 start와 update를 가지고 있다.
위에서 연습한 코드를 유니티로 넣으면 다음과 같다.
using UnityEngine;
using System.Collections;
public class firstScript : MonoBehaviour {
int count;
// Use this for initialization
void Start () {
//Debug.Log ("I am Unity");
int korean, english, math, sum;
float avg;
korean = 100;
english = 50;
math = 80;
sum = korean + english + math;
avg = (float)sum / 3.0f;
//F5는 소숫점 자리수를 지시한다.
Debug.Log ("총합은 " + sum + "평균은 " + avg.ToString("F5") + "입니다.");
if ((korean >= 50) && (english >= 50) && (math >= 20) && (avg >= 50)) {
Debug.Log ("합격하셨습니다.");
} else {
Debug.Log ("불합격하셨습니다.");
}
count = 0;
}
// Update is called once per frame
void Update () {
//++count;
//Debug.Log (count);
}
}
4. for문
비쥬얼 C++로 작성하면 다음과 같다.
#include<stdio.h>
void main(void)
{
int num = 0;
//num이 1부터 시작해서 3이하일때까지 반복문이 실행된다.
//증가시키고 싶을때는 num++
//감소시키고 싶을때는 num--
//초기값과 목표값 설정을 잘해야 한다.
//등호를 항상 신경써서 버그가 생기지 않도록 하자
for (num = 1; num <= 100; num++) {
//반복할때 할것들
printf("%d ", num);
}
while (num >= 0) {
num--;
//반복할때 할것들
printf("%d ", num);
}
}
이것을 유니티 c#코드로 변환하면 다음과 같다.
using UnityEngine;
using System.Collections;
public class firstScript : MonoBehaviour {
int count;
// Use this for initialization
void Start () {
//Debug.Log ("I am Unity");
int korean, english, math, sum;
float avg;
korean = 100;
english = 50;
math = 80;
sum = korean + english + math;
avg = (float)sum / 3.0f;
Debug.Log ("총합은 " + sum + "평균은 " + avg.ToString("F5") + "입니다.");
if ((korean >= 50) && (english >= 50) && (math >= 20) && (avg >= 50)) {
Debug.Log ("합격하셨습니다.");
} else {
Debug.Log ("불합격하셨습니다.");
}
count = 0;
int num = 0;
for (num = 100; num > 0; num--) {
Debug.Log (num);
}
while(num < 100){
num++;
Debug.Log (num);
}
}
// Update is called once per frame
void Update () {
}
}
'IT > 유니티' 카테고리의 다른 글
6. 유니티 교육 (유니티 기본) (0) | 2016.07.22 |
---|---|
5. 유니티 교육 (C++로 구현한 간단한 게임) (1) | 2016.07.21 |
4. 유니티 교육 (간단한 게임 구조만들기) (0) | 2016.07.20 |
3. 유니티 교육 (구조체와 함수) (0) | 2016.07.20 |
2. 유니티 교육 (C++교육) (0) | 2016.07.19 |