728x90
728x90
새로운 vector3 값으로 transform.position하는 스크립트문을 작성했다. 먼저 float 형식으로 delta = -0.1f 값을 선언했는데 이는 매 프레임마다 z 값의 변화량을 의미한다. 현재 오브젝트는 (0, 1, 7)의 위치값을 갖는데 현 위치값에서 x 델타값만 연산되는 변수 newXposition를 새로 생성했다. transform.position = new Vector을 선언해서 위치값을 움직이는데 Update()가 실행되는 동안 델타값이 적용된 x값을 갖게 되었다. 그리고 if조건문을 활용하여 x좌표가 -6보다 작아지는 경우, 델타값을 -0.1f에서 0.1f로 바꿔주어 반대로 움직이게 하였고, 마찬가지로 6보다 커지는 경우, 다시 -0.1f로 바꿔 -6과 6사이의 x값만 갖도록 ..
True / False로만 결과값을 갖는 bool 형식을 사용하여 스크립트를 작성했다. 기울어진 바닥에 공을 떨어트렸을 때 매 프레임마다 공이 이동한 거리를 측정하여 if 조건문으로 다음과 같이 표현했다. 하지만 이런 경우, 프레임마다 Debug.Log()가 찍히기 때문에 너무 많다. 따라서 이동거리가 "20을 넘었을 때" 또는 "30을 넘었을 때" Debug.Log()값을 딱 한 번 찍게 만들기 위해 bool 형식을 사용했다. 먼저 bool타입으로 shouldPrintOver20과 shouldPrintOver30 멤버변수를 선언해주었다. 그리고 if(distance>30)을 만족했을 때 하위 if(shouldPrintOver30) 조건문을 한번 더 선언해 주었다. 즉, 30을 넘겼을 때 먼저 Debug..
유니티에서 기울어진 바닥에 공을 떨어트렸을 때, 매 프레임마다 공이 이동한 거리를 구하는 스크립트를 작성해보았다. float 형식으로 최초 시작지점인 startingPoint를 선언해주었고, Vector3 값 중 Z값의 변화를 측정하기 위해 처음 한 번 실행되는 Start()메서드에 startingPoint = transform.position.z로 시작지점의 Z값을 찍어주었다. 그리고 Update()메서드 내 지역변수로 float형식의 distatnce를 선언해 주었고, distance는 매 프레임마다 이동하는 tranform.position.z 값에서 startingPoint를 빼주어 계산하도록 하였다. Debug.Log(distance)를 선언해주면 완성! startPoint의 z값이 0으로 찍히고..
Switch 문은 if 문과 같이 조건 제어문에 속한다. 하지만 if문과 달리 (이상,이하,초과,미만)과 같은 부등식이 사용될 수 없는 특징을 가지고 있다. 즉, switch 문에서는 비교할 변수가 어떤 값을 가지냐(==)에 따라 실행문을 선택할 수 있는 것이다. (모든 switch 문은 if문으로 바꿀 수 있지만, 모든 if문을 switch문으로 치환할 수는 없음) Switch문은 if 조건문보다 가독성이 좋고, 다수의 변수값을 비교할 때 용이하다는 장점을 가지고 있다. 위의 스크립트를 보면 switch문은 보통 case와 함께 사용되며 switch(intelligence)와 case 1, case 2 실행문을 비교하여 적합하면 print()를 호출하게 된다. 원하는 case 문을 찾을 때 까지 계속 ..
Enumerations는 열거형이란 뜻으로 줄여서 enum이라고 쓴다. enum()함수는 인자들에 암시적(implicit)으로 integer 정수값을 부여하는 형변환 함수인데 최적화 역할을 수행한다. enum Direction {North, East, South, West}은 Direction 방향을 정하는 동서남북 인수들을 가진 배열인데 default로 North는 0, East는 1, South는 2, West는 3의 값을 배정받는다. 만약 enum Direction {North = 1, East, South, West} 이라면, North부터 1, East = 2, South = 3, West = 4의 값을 가진다고 보면 된다. (각각 인자에 원하는 정수값을 배정해줄 수 있다.)
Invoke()함수는 시간 딜레이를 주고 함수를 실행시키는 함수이다. 위 스크립트르 보면 SpawnObject() 메소드를 실행하면 target이라는 GameObject가 생성되는데 해당 함수가 실행되기 전 Start() 메소드내 Invoke()가 먼저 실행되게 된다. Invoke()는 호출string(이름)과 몇 초 후 실행될 것인가 하는 Time Delay라는 2가지 매개변수를 가진다. 즉, 스크립트가 실행되면 2초 후 SpawnObject 메소드가 호출되게 된다. InvokeRepeating() 함수는 Invoke()를 반복해주는 함수이다. InvokeRepeating()은 ("메서드 이름", 시간 딜레이, 반복 시간 단위)라는 3가지 인수를 가지고 있다. 위의 스크립트를 보면, SpawnObjec..