목록개발 (11)
브래의 슬기로운 코딩 생활
Navigation 활용하기 NavMesh(네브메쉬) - 유니티에서 제공하는 네비게이션 시스템 - 플레이어를 따라와 공격하는 AI에 사용 - 가는 경로를 찾을 수 있는 데이터 구조를 Bake 해서 지정 using UnityEngine.AI; 필수 NavMeshAgent 목표를 향해 움직이는 물체에 지정해서 사용 설정에 따라 쫓아가면서 장애물 회피, 점프, 서로를 피하기 등을 설정 타겟 대상의 위치설정, 위치 설정시 바로 추적 시작 =>NavMeshAgent.destination = 캡슐.position; Agent Radius - 객체의 접근막의 반지름의 길이(값만큼 외각 여백 결정) Agent Height - 허용할 최대 높이(최대 등산각도,계단 높이에 영향을 줌) MaxSlope - 허용할 최대 경사..
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); // 점..
API, Open API, RESTful을 간단하게 한 문장으로 정리 API (Application Programming Interface)는 애플리케이션들이 서로 상호작용하기 위해 사용하는 인터페이스이고, Open API는 개방적으로 접근하고 사용할 수 있는 API를 말하며, RESTful은 웹 서비스를 구축하는데 사용되는 아키텍처 스타일이다. URI와 URL URI는 리소스를 유일하게 식별하기 위한 문자열이며, URL은 그 중에서도 리소스의 위치를 지정하는 형식의 문자열이다. ViewController.swift 파일 수정 protocol 채택(adopt)과 준수(conform)개념, 필수 메서드(cellForRowAt, numberOfRowsInSection), indexPath 프로토콜 채택은 객..
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(..
오늘은 고양이가 떨어지는 화살표를 피해야하는 간단한 게임을 만들었다. 사용된 개념 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..
오늘은 자동차를 스와이프 하면 스와이프 한 거리 만큼 이동하게 하는 게임을 만들었다. 이번에도 저번주에 만들었던 룰렛 게임과 비슷한 원리로 만들었다. 그리고 다음주는 시험인데 오픈북 시험이다. -4월26일 중간고사 1) 일시: 4월26일 14시-15시30분(1시간 30분) 2) 장소: 인관 301호 3) 방식: Open PPT(다른 자료도 허용, 그러나 학생간 공유는 안됨) 4)범위: Chapter1~Chapter7(chapter5제외) * 전자기기 반입금지 *시험전 동영상 수강(출석에 포함)
오늘은 아주 간단한 소스를 이용해서 룰렛 프로그램을 만들어서 핸드폰으로 실행까지 시켜보는 실습을 했다. 진짜 거짓말 안치고 한 코드 6줄 정도 들어갔는데 꽤 근사한 프로그램이 되더라 물론 좀더 기능을 추가하면 코드가 많아지겠지만 생각한 것보다 신기했다. 짜잔~ 진짜 괄호 빼고 보면 소스가 7줄이닼ㅋㅋ 7줄로 만든 프로그램을 만들 수가 있다는게 놀랍고 재밌었다. 다음시간에는 어떤걸 만들지 기대가 된다
오늘은 드디어 새로운 함수나 명령어 들을 배워서 재미있었다. 유니티 내장 함수 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..