VIM Hanul Lim. 기본적으로 지원하지 않는 기능을 활용하 기 위해 사용하는 소스코드 – 종류 : C#, Javascript, Boo – 추천언어 C# : 고급기능 활용하기에 용이함 Javascript : 초보가 활용하기에 용이함 – 스크립트 Reference.

Slides:



Advertisements
Similar presentations
Transaction ㅇ Transaction 을 직접 구현하려면, 까다로운 설계와 복잡한 코드를 필요로 하고 수정에 공수가 많이 들게 된다. ㅇ 스프링에서 제공하는 Transaction Manager 를 사용하여 쉽고 간편하게 어려운 트랜잭션을 해결할 수 있다. xml.
Advertisements

Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
For Android 이재원.  페이스북 SDK 설치  2 가지 예제 & 소스  API 사용 예제 프로젝트 만들기  Graph API  참고사항 & 사이트.
멘토링 2 주차 장 프로그래밍을 위한 자바의 자료형  값이 변하지 않는 상수  메모리 기억공간인 변수.
폭력. 폭력이란 무엇인가 우상의 눈물 물리적인 폭력 ( 최기표 ) VS 지능적인 폭력 ( 임형우, 담임선생님 )
1 박 2 일 !!! 인천마장초등학교 유수아. 1 박 2 일 멤버 인기순 위 1 위 이승기 2 위 엄태웅 3 위 은지원 4 위 김종민, 이수근 ※인터넷에서 본것이기 때문에 사람에따라 서 다를 수 있다. ※
석관중앙교회 5남전도회 석 관 중 앙 교 회 회원 소식 통권 05-04호 발행일 : 2005년 04월 회 장 : 장진호 집사
아름다운 이들의 행복한 길음안나의 집.
Chapter 02. C언어 기반의 C++ 박 종 혁 교수 UCS Lab SeoulTech Tel:
지역사회복지론 1조. 요양보호시설에 대해서 황성국 임재형 이동영
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
Vision System Lab, Sang-Hun Han
컴퓨터 응용 및 실습 Part1. OOP&Java Programming data type Review
AJAX 기본중의 기본 xmlhttprequest
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
I 문학의 개념과 역할 1. 문학의 개념 (1) 언어 예술로서의 문학 (2) 소통 활동으로서의 문학
명품 JAVA Programming 제 13 장 스레드와 멀티태스킹.
4. 목적론적 윤리와 의무론적 윤리 01. 경험주의와 이성주의 01. 경험주의와 이성주의 02. 결과론적 윤리와 공리주의
Lab 3 Guide: 교재 4장 대화상자 예제. - 프로파일 입력 ( 쪽)
실전 프로젝트 2 : 숫자야구 숫자 야구를 구현해보자.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
Power Java 제4장 자바 프로그래밍 기초.
10장 객체-지향 프로그래밍 II ©창병모.
JAVA 프로그래밍 6장 객체지향프로그래밍의 핵심.
객체지향 언어와 클래스, 객체 ㅎㅎ 개요 클래스의 선언, 객체의 생성 및 속성 참조 방식 멤버 변수 메소드 한빛미디어(주)
Choi, Namseok Java 기초 (Java의 제어문과 배열) Choi, Namseok
모 바 일 게 임 제 작 한국IT전문학교 박재성.
이쁜 코드 작성하기 마이에트 레이더즈팀 중원.
최용술 장 Thread 최용술
제 14 장 파티클 시스템.
12장 유연한 카메라 클래스 만들기 한성대학교 멀티미디어공학과 게임 프로그래밍-I 강의노트
Chapter 05. 클래스 완성. chapter 05. 클래스 완성 01. 복사 생성자 복사 생성(Copy Construction) 생성될 때 자신과 같은 타입의 객체를 변수로 받아, 이 객체와 같은 값을 갖는 새로운 객체를 생성하는 것 명시적인 생성 과정뿐만.
DataScience Lab. 박사과정 김희찬 (월)
C ++ 프로그래밍 시작.
프로그래밍2 및 실습 C언어 기반의 C++ 2.
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
날짜: 팀명: TEAM-SIX 발표자: 이기영
USB Door Lock System 공 민 표 강 정 이 권 경 곤
DataScience Lab. 박사과정 김희찬 (월)
개항기 조선과 동아시아 박 범 한국역사입문Ⅱ.
03. 안드로이드를 위한 Java 문법 제목. 03. 안드로이드를 위한 Java 문법 제목.
WAP Java Seminar
Ch.1 Iterator Pattern <<interface>> Aggregate +iterator
고구려,백제,신라의 건국과 발전 Start!
제 2장 어휘구조와 자료형 토 큰 리 터 럴 주 석 자 료 형 배 열 형.
지역 기획취재 지역신문의 취재방향과 보도 사례
[CPA340] Algorithms and Practice Youn-Hee Han
4장 - PHP의 표현식과 흐름 제어-.
[INA470] Java Programming Youn-Hee Han
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
CACM 구현 public class CACM { public CACM(File file)
Lab 9 Guide: 인터넷 프로그래밍 예제 * 일대일 채팅 프로그램 (교재 27장, 쪽)
2차 발표: 내일은 홈런왕 학번: 이름: 주해성.
대구의 부도심 대구의 주요축 동대구 부도심 4조 강민석 / 박성균 / 최은지/ 황재현/김예지.
작성일 참고서적 – Programing Game AI by Example
Java 3장. 자바의 기본 구조 I : 변수, 자료형, 연산자 public class SumTest {
- 과거 500년의 조선과 동아시아 정세를 중심으로 -
자바 5.0 프로그래밍.
사도행전 13장 22절 말씀 –아멘 다 윗 을 왕 으 로 세 우 시 고 증 언 하 여 이 르 시 되 내 가 이 새 의 아 들
C# 10장. 참조형.
6장 클래스(상속).
2015년 2학년 1반.
6월 1주 주간메뉴표 NEW 엄마손 조식 쉐프 삼촌 중식 참새 방앗간 석식 ◎원산지 안내 : 쌀(국내산)
경찰행정과 세미나 결과를 공개해야한다. VS 비공개로 해야한다. 경찰의 근무성적평정 제도.
반복문의 기능 반복문 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 while문
1차 발표: 내일은 홈런왕 학번: 이름: 주해성.
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
11장 다형성과 추상 클래스, 인터페이스 Section 1 객체의 형 변환 Section 2 연산자 Section 3 다형성
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 02. C언어 기반의 C++ 2.
Presentation transcript:

VIM Hanul Lim

기본적으로 지원하지 않는 기능을 활용하 기 위해 사용하는 소스코드 – 종류 : C#, Javascript, Boo – 추천언어 C# : 고급기능 활용하기에 용이함 Javascript : 초보가 활용하기에 용이함 – 스크립트 Reference ence/index.html ence/index.html

Inspector 창에서 – Add Component> New Script> 이름 및 언어설정

스크립트 더블클릭 > MonoDevelop 실행 – 기본 스크립트 편집기 – Compile 이나 디버깅이 바로 되지는 않음 Edit> Preference> External Tool> External Script Tool 에서 다른 툴로 변경 가능 (VS)

Random.RandomRange(-50.0f, 50.0f); – -50~50 까지의 float 값을 생성하는 함수 transform.position = new Vector3(x, y, z); – x, y, z 의 값에 알맞게 해당 Script 가 포함된 object 를 위치시킴 – 이를 이용해 시간에 따라 변화시키면 이동 가능 – Vector 를 활용하여 값을 변경할 수 있음 개별 값 변화할 경우에도 Vector3 를 활용해야 함

회전 예제 – transform.Rotate(x, y, z); 각 축에 대해 입력된 각도로 해당 스크립트를 포함 한 오브젝트의 각도를 수정함 여기에 일정한 값을 더하거나 빼서 오브젝트의 방향 이동이 가능함 실제로 회전시키면 다소 어색하고 원하지 않는 각이 나옴 – transform.Rotation = Quaternion.Euler(x, y, z); 동일하게 회전 역할을 하는 함수이나 더 많이 사용

물체의 속도 변경 – 오브젝트에 rigidbody 추가 – 오브젝트에 C# script 추가 – C# script 편집기 실행 – Void Update() 함수 내에 다음과 같이 입력 rigidbody.velocity = new Vector3( 3.1f, 0, 0 ); 반드시 소수는 뒤에 f 를 붙여줘야 에러가 안 남 X 축 방향으로 3.1 의 속도를 물체에 부여하는 코드

물체의 가속도 부여 – 오브젝트에 rigidbody 추가 – 오브젝트에 C# script 추가 – C# script 편집기 실행 – Void Update() 함수 내에 다음과 같이 입력 rigidbody.velocity += new Vector3( 0.1f, 0, 0 ); X 축 방향으로 0.1 의 속도를 지속적으로 더하는 코드

물체의 위치 변경 – C# script 편집기 실행 – Void Update() 함수 내에 다음과 같이 입력 transform.position += new Vector3(0.1f, 0, 0); 지속적으로 물체의 현재 위치에서 매 프레임마다 X 축 방향으로 0.1 만큼 이동시키는 코드 – rigidbody 를 추가하지 않고도 사용 가능 – 물리엔진이 들어가지 않았기 때문에 회전하거 나 저항이 생기지 않음

예제 1 : 속도 지정 – 부자연스러운 움직임으로 추천하지 않음 예제 2 : 가속도 지정 – 벡터의 크기 변화를 통하여 오브젝트의 움직임 이 자연스럽게 표현될 수 있음 예제 3 : 위치 변경 – 회전과 함께 사용하면 FPS 등에 활용하기는 좋 으나 역시 움직임이 부자연스러움

Key 입력 – If(Input.GetKey(KeyCode.W)) { //to do something } – W 입력 시 지정된 행동을 함 – KeyCode. 을 입력 후 자동완성 창에서 원하는 키 입력이 있는지 찾아보고 선택할 것

Key 입력 처리 예제 – Key 입력을 줄 Object 를 선택하고 Inspector 창 에서 Rigidbody 항목에 Drag( 저항 ) 를 1 로 지정 – If(Input.GetKey(KeyCode.W)) { rigidbody.velocity += new Vector3(0, 0, 0.2f); } – 상기 함수와 같이 S, A, D 에 대해서도 입력 처리

if 문 4 개를 단순히 나열만 하더라도 키 입력 자체를 중복으로 받아들이므로 대각선 이 동이 자연스럽게 인식됨 구체에 적용한 경우 Rigidbody 가 있기 때문 에 표면에서 회전하는 모습을 볼 수 있음 저항을 1 로 지정했기 때문에 일정 이상 빨 라지지 않음을 확인할 수 있음

10 분간 휴식한 후 진행하도록 하겠습니다.

카메라 시야 처리 예제 – Camera 에 스크립트 생성 – Camera class 내에 다음과 같이 선언 public GameObject target;// 필히 함수 밖에 선언 – Camera 오브젝트의 Inspector 창에서 Script 부분을 보면 target 이 새로 생성되었으며 None (Game Object) 라고 되어 있음 – 여기에 이동 스크립트를 넣은 오브젝트를 드래그 앤 드롭 – void update() 내에 transform.LookAt(target.tranform); 입력 후 실행

마우스 입력처리를 통한 시야 회전 – Camera 클래스 내에 다음을 선언 Vector3 offset;// 카메라가 일정 거리에 // 머물도록 하기 위한 상대 좌표 public float sensitivityX = 8f;//X 축 회전 민감도 public float sensitivityY = 8f;//Y 축 회전 민감도 float mHdg = 0f;//X 축 회전 인지를 위한 변수 float mPitch = 0f;//Y 축 회전 인지를 위한 변수

– void Start() 함수 내에 다음을 입력 offset = transform.position – target.transform.position; offset 에 최초 배치된 거리만큼 항상 일정하게 카메라와 target 오브젝트 간의 상대 거리가 유지되도록 하기 위 해 start 함수에서 지정함 – 다음 세 함수는 Start 와 Update 외부에 정의할 것 – void ChangeHeading(float aVal) //X 축 회전 함수 정의 { mHdg += aVal; WrapAngle(ref mHdg); transform.localEulerAngles = new Vector3(mPitch, mHdg, 0); }// 재사용 할 수 있으니 따로 저장해 둘 것

– void ChangePitch(float aVal) //Y 축 회전 함수 정의 { mPitch += aVal; WrapAngle(ref mPitch); transform.localEulerAngles = new Vector3(mPitch, mHdg, 0); }// 재사용 할 수 있으니 따로 저장해 둘 것 – public static void WrapAngle(ref float angle) { // 각도가 -360 = 360 = 0 이 되도록 맞추기 위한 함수 if(angle < -360f) angle += 360f; if(angle > 360f) angle -= 360f; }

– void Update() 함수 내에 다음을 입력할 것 Vector3 desiredPosition = target.transform.position + offset; // 매 프레임마다 상대 거리를 계산함 transform.position = desiredPosition; // 계산 된 상대 거리에 카메라 위치를 이동 float deltaX = Input.GetAxis(“Mouse X”) * sensitivityX; float deltaX = Input.GetAxis(“Mouse Y”) * sensitivityY; // 마우스의 x, y 축 변화를 체크 함 If(true){ ChangeHeading(deltaX); ChangePitch(-deltaY); }

마우스의 이동에 따라 시야가 변함 카메라와 대상 오브젝트간 거리는 고정 Update 함수 내 ChangeHeading 과 ChangePitch 함수를 감싼 if 문의 조건에 Input.GetMouseButton(0) 을 넣으면 왼쪽 버 튼을 클릭할 시에만 화면 시점 조정

점프 예제 – 다음 코드를 void Update 함수 내 입력 If(input.GetKey(KeyCode.Space)) { rigidbody.velocity += new Vector3(0, 5, 0); } – 항상 Spacebar 가 눌러진 동안 위쪽 속도 발생 – 한 번만 점프하도록 만들어야 함

– Input 을 체크하는 if 문 안을 다음과 같이 변경 우선 오브젝트의 클래스 내 bool JumpFlag = false; 를 선언 If(JumpFlag == false) { rigidbody.velocity += new Vector3(0, 3, 0); JumpFlag = true; } if(transform.position.y <= 0.5) jumpFlag = false;

JumpFlag 를 두어 위쪽 속도를 얻는 즉시 Flag 값을 변경시키고 오브젝트의 높이가 0.5, 즉, 바닥에 닿지 않으면 점프를 허용하 지 않음 이를 통해 지속적으로 올라가는 것을 방지 추후 오브젝트간 충돌체크를 통해 좀 더 정 교하게 가다듬을 수 있음

키 입력, 마우스 입력을 통해 게임 제작 물체의 뒷면만을 보이도록 하는 카메라 생성 – 현재 : 마우스를 회전하면 제자리에서 회전 – 목표 : 오브젝트를 중심으로 회전하도록 오브젝트도 같이 회전할 것 (TPS) LookAt 함수 + 마우스 이동 시 원운동 적용

프로젝트 시작 – 계획서 작성해서 옵니다. Ragdoll 다루기 3D 애니메이션 적용 방법

일정, 내용 등등