프로그래밍 160

NGUI_아틀라스 생성

Atlas 유니티에서는 이미지가 출력될때마다 드로우콜*이 발생하는데, 많은 이미지를 사용할 수록 드로우콜이 많이 발생되서 게임이 느려질 수 있다. (드로우콜이 많아지면 그래픽 장치를 독점하기 때문에 느려지는거라고-.) 그래서 사용하는 용도가 비슷한 이미지들을 한장으로 만들어서 관리하는데 이걸 아틀라스(Atlas)라고 한다. ​ *드로우콜(Draw call) 그래픽 장치를 통해 화면에 얼마나 많은 이미지를 띄우는지 나타낸다. 텍스쳐, 인터페이스, 이펙트 등등이 겹쳐서 발생할수 있음. ​ ​ ​ ​ Asset - Create - Folder를 하나 만들어서 필요한 이미지를 넣어준다. 일단 폴더이름은 Test로... ​ ​ NGUI는 유니티 기본기능이 아니라서 별도로 추가해야 한다. Asset 스토어에서 구매..

JavaScript)기초

JavaScript -변수선언 var a; var a: int; 자바스크립트는 변수의 타입을 명확하게 따지지는 않지만, 변수의 타입을 선언하는것을 추천한다. 2번째 타입처럼. 변수타입:int, char, float, byte.. 해당 스크립트를 유니티 내 인스펙터에 컴포넌트로 넣으면 그 변수가 인스펙터 창에 뜬다. 그래서 값을 변경하거나 대상을 변경할 수 있다. 변수 선언과 게임 내의 수치와 밀접한 관련이 있다. -함수 function Start(){} function Update(){} 위 두 함수는 자동으로 생성된다. 시점함수라 선언이 필요하고 Start는 시작될때 한번, Update는 매프레임마다 실행된다. -콘솔에 출력하기 print("출력은 이렇게:"+a); -스크립트로 조이스틱 gameObje..

(07.31)raycast_Picking

raycast를 이용한 picking. 마우스 L 클릭마다 큐브가 점프하도록. 노랑노랑 큐브들. 버터조각같네 ㅋㅋ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 using UnityEngine; using System.Collections; public class pickingBasic : MonoBehaviour { void Update() { if (Input.GetMouseButton(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity)..

(07.27)Quaternion_centreeGun

Quaternion을 이용한 센트리건. 일정범위에 들어가면 경고등이 켜지고 총알 발사... 지만 경고등까지만 . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 using UnityEngine; using System.Collections; public class move : MonoBehaviour { float moveSpeed = 5f; void Update() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); transform.Translate(new Vector3(0, 0, v) * moveSpeed * Time.deltaTime); transform.Rotate(new Vector3(0, ..

(07.27)Quaternion_유도미사일, 쫓아다니는 카메라

4원수를 사용하는 체계로 Eular좌표계의 짐벌락 현상을 해결하기 위해서 사용한다. (짐벌락 현상: 움직이다보면 축이 겹치는 현상_x,y축이 겹친다거나.) Quaternion은 xyz는 벡터를 의미하고 w가 회전량. 카메라가 캐릭터를 쫓아다니게 할수도 있고, cocos2d에서 힘들었던 유도미사일도 금방 만들수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class quater:MonoBehavior{ public Transform target; float moveSpeed; float rotSpeed; void Start(){ moveSpeed = Random.Range(5,20); rotSpeed = Random.Range(5,10); } void Up..

(07.23)함수의 종류_시점함수

시점함수 함수의 종류에는 시점함수, 일반함수, 기본제공 함수가 있다. 함수 종류 선언 실행조건 시점함수 필요함 특정시점에 따라 자동실행 일반함수 필요함 실행문으로 실행 기본제공 함수 필요없음 실행문으로 실행 이 중, 시점함수는 선언만 해놓으면 자동 실행되는 함수다. 시점함수 필요 전달값 발동시점 Start scirpt가 시작되는 순간만, 딱 한번 실행구문안의 내용을 실행. Update 매 프레임마다 실행. OnEnable script가 붙어있는 object가 활성화되는 순간마다 구문의 내용을 한번씩 실행. OnDisable script가 붙어있는 object가 비활성화되는 순간마다 구문의 내용을 한번씩 실행. OnTriggerEnter 충돌체 Trigger충돌체가 특정 물체와 부딪힌 순간, 구문의 내용을..

(07.23)mecanim, animator

메카님. 완벽한 애니메이션 동작이 있을때 사용하는걸 추천. 아니면 사용하지 않는게 낫다. 무료로 받을수 있는 BaseMale. 파일중에 meta 빼고 나머지를 드래그해서 넣어놓고, 스크립트 작성. 애니메이션이 아닌 애니메이터를 쓴다. 스크립트를 basemale에게 넣어주고 select - rig - 애니메이션 타입: Humanoid 변경. animations-Import Animation 비활성화 (애니메이터를 사용할거니까) 다하고나면 Rig - configure. configure를 누르면 관절모양의 그림이 뜬다. 오른쪽 관절표시가 되어있는 그림을 보면 원 테두리가 점선인것도 있고, 아닌것도 있는데 이중에 원 테두리가 점선인것은 반드시 필요한 관절은 아니여서 사용여부를 선택할수 있는 부분이다. 그 외에..

(07.20)normal mapping_셰이더를 이용한 맵핑

맵핑(mapping) 내가 만든 물체에 재질을 입히는것. 맵을 입체적으로 보이게 할수도 있다. bump mapping texture로 구글링하면 이렇게 두장씩 뜬다. 일단 보통때 texture입히는 것처럼 재질을 드래그해서 입혀준후, shader->Legacy Shader->Bumped Specular를 선택하면 아래와 같은 창이 뜬다. 오른쪽 두칸으로 각각의 이미지를 넣어주면 끝.