목록c# (23)
브래의 슬기로운 코딩 생활
코루틴(coroutine)이란? - Update()문은 기기의 CPU성능에 영향을 받으나 코루틴은 안 받음 - 코루틴이 10~20배 빠름 - 코루틴은 해당 함수를 끝까지 실행하지 않고, yield가 나오는 부분에서 일단 멈추고, 제어권이 돌아오면 남은 작업을 실행하는 방법 코루틴의 사용 (정의) IEnumerator (복귀) yield return (호출) StartCoroutine(“코루틴함수이름“) (중지) StopCoroutine(“코루틴함수이름“)
Addforce() - rigidbody에 기반한 힘 - 힘=가속도=속도의 변화량이기 때문에 속도라기보다는 속도 변화에 대한 값 Rigidbody.velocity: Rigidbody의 속도벡터 Rigidbody.Addforce(방향 * 힘)=> 가속도(힘)을 지정할 수 있는 속성 Rigidbody2D rigid2D; void Start() { this.rigid2D = GetComponent(); // Rigidbody2D부여 } if(Input.GetKeyDown(KeyCode.Space) && this.rigid2D.velocity.y == 0) { // Y축으로 움직이지 않고 스페이스바를 누르면 this.rigid2D.AddForce(transform.up * this.jumpForce); // 점..
isKinematic은 물리 엔진의 영향을 받지 않는 상태이다. 즉 이 값이 true이면 그 자리에서 멈추게 된다. GameObject B = Instantiate ( A ) as GameObject; // B 게임 오브젝트는 A게임 오브젝트의 복제이다. Ray = Camera.main.ScreenPointToRay(Input.mousePosition); // Ray는 카메라에서 마우스커서 위치로 향하는 가상의 선이다. Vector3.normalized // Vector3는 방향과 길이가 있는데 정규화를 하면 길이가 1로 고정됨 정규화를 하는 이유는 방향정보만 있고 속도가 1이라면 원하는 숫자를 곱해서 속도를 조절할수 있기 때문이다. Ray ray = Camera.main.ScreenPointToRay(..
오늘 만든 게임이다. 간단하게 떨어지는 물체를 바구니에 담는 게임 이다. Tag를 사용해 아이템 종류 판별하기 • 바구니에 받은 것이 무엇인지 판별하기 위해 tag사용 –아이템이 충돌했을 때 호출되는 OnTriggerEnter 메서드 –충돌 상대의 태그가 Apple이면 Tag => Apple, Bomb이면 Tag => Bomb가 됨 void OnTriggerEnter(Collider other) { if (other.gameObject.tag == "Apple") { } else { } Destroy(other.gameObject); } –X좌표와 Z좌표에 각 각 -1, 0, 1 값을 무작위로 대입 –무작위 값을 대입하는 데는 Random 클래스 의 Range 메서드를 사용 Ray ray = Camera..
CharacterController컴포넌트 –주로 FPS나 TPS 게임의 플레이를 구현할 때 사용 –Rigidbody와 Capsule Collider 기능을 포함하고 있음 CharacterController controller ; //CharacterController 변수 정의 controller = GetComponent () ; //스크립트가 부착된 object의 구성요소에 CharacterController 를 controller의 변수에 대입 currentMovement += Vector3.forward * Time.deltaTime * 1.0f ; // 1초에 1m 앞으로 가는 속도를 currentMovement에 추가한다. controller.Move (currentMovement * Tim..
오늘은 고양이가 떨어지는 화살표를 피해야하는 간단한 게임을 만들었다. 사용된 개념 int px = Random.Range(-3, 4); :-3~3의 값 중 임의의 값이 px에 저장 public GameObject arrowPrefab;//화살표에 연결 //arrowPrefab이 복제됨 void Update(){ GameObject go = Instantiate(arrowPrefab) as GameObject } void Update() { GameObject go = Instantiate(arrowPrefab) as GameObject; int px = Random.Range(-3, 4); go.transform.position = new Vector3(px, 7, 0); } Time.deltaTime ..
오늘은 구름위를 점프하는 고양이 게임을 만들었다. 그리고 저번주에 본 중간고사 점수가 나왔는데, 35점 만점에 32점 맞았다. 이번 시험문제가 쉽긴했는데 평균이 30점이라고 해서 놀랐다. 다들 열심히 하는 구나 라는 생각을 했다. 화면을 터지하면 토끼가 점프를 하고 구름을 밟고 올라가서 위에 있는 깃발에 닿으면 게임이 종료되는 그런 게임이다. 여기서 쓰인 소스들은 다음을 응용한 것이다. Addforce() - rigidbody에 기반한 힘 - 힘=가속도=속도의 변화량이기 때문에 속도라기보다는 속도 변화에 대한 값 Rigidbody.velocity: Rigidbody의 속도벡터 Rigidbody.Addforce(방향 * 힘)=> 가속도(힘)을 지정할 수 있는 속성 Rigidbody.velocity: 움직이..
transform.Translate(x,y,z):게임오브젝트를 현재 위치에서 x,y,z의 거리만큼 이동시키는 명령어 transform.Translate(0,0,1);=>z축 방향으로 1만큼 움직임 transform.Rotate(x, y, z); = 0회전 자식은 부모와 함께 움직임 •스크립트로 Rigidbody부착 – gameObject.AddComponent(); •gameObject:스크립트가 연결되어 있는 게임 오브젝트 자신을 가리킴 •public변수:클래스(또는 스크립트파일)외부에서 접근 가능 •private변수: 변수가 선언된 클래스 안에서 만 접근가능 •local변수: 변수가 선언된 중괄호 내부에서만 접근 가능 Start():자동으로 한번 실행 Update(): 매 프레임마다 실행 1초에 1m..
오늘은 드디어 새로운 함수나 명령어 들을 배워서 재미있었다. 유니티 내장 함수 OnMouseDown() - 마우스로 클릭할 때 실행 OnMouseUp() - 마우스로 클릭하고 뗄 때 실행 OnMouseEnter() - 마우스 커서가 해당 객체 위에 놓이면 실행 OnMouseExit() - 마우스 커서가 해당 객체 밖에 있으면 실행 transform.Rotate(x,y,z) - x,y,z 축 기준으로 자기 자신을 주어진 각도만큼 회전시키라는 명령어 transform.Translate(x,y,z) - 각 축으로 지정한 거리만큼 이동 (반대방향 = '-') Input.GetKeyDown(KeyCode.?) - 키보드에서 ? 키를 입력 Vector3.forward:전진 Vector3.back:후진 Vector3..
•public변수:클래스(또는 스크립트파일) 외부에서 접근 가능 •private변수: 변수가 선언된 클래스 안에서 만 접근가능 •local변수: 변수가 선언된 중괄호 내부에서만 접근 가능 void Update () { //1초에 1m이동 transform.Translate (0, 0, 1.0f*Time.deltaTime); } 실습 ? : 2.0f * Time.deltaTime ??: 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 + 0.2 ???: 0.4 + 0.4 + 0.4 + 0.4 + 0.4