분류 전체보기 205

물리엔진, 애니메이션, 씬변환

고양이를 올린뒤 rigidbody 2D와 box 콜라이더 추가 rigidbody 2D : 2D 한정 오브젝트에게 중력을 적용한다 Box Collider : 충돌판정을 위한 콜라이더 구름에게도 충돌판정을 위한 박스콜라이더를 입히면 게임 실행시 구름위에 고양이가 앉는걸 볼수있다 이렇게 Circle 콜라이더까지 추가해서 더 사실적으로 충돌판정을 만들수 있으나 정말 정교하게 만들지 않는다면 미끄러 넘어질수 있다 그럴땐 rigidbody의 Constrains로 들어가 축을 고정시킬수 있다 어느 축을 고정시키고 싶은지 알고 싶다면 3D 모드로 들어가 확인할수 있다 만약 구름에게도 rigidbody를 추가하지만 중력의 작용을 받고 싶지 않다면 Body Type에서 Kinematic을 선택하면 된다 이번에는 스페이스바..

프리팹, 충돌판정

1. 오브젝트를 배치해준다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerControl : MonoBehaviour { void Update() { if (Input.GetKeyDown(KeyCode.LeftArrow)) { transform.Translate(-3, 0, 0); } if (Input.GetKeyDown(KeyCode.RightArrow)) { transform.Translate(3, 0, 0); } } } 2. Playercontrol 스크립트를 작성 후 player 오브젝트에 넣어준다 -> 키를 누를때마다 3,-3씩 이동 Input.GetKeyDown(Key..

유니티 글꼴 다운받아 넣기

1. 원하는 글꼴을 찾아 다운로드  2. 패키지 매니저에 들어가 TextMeshPro 다운로드 3. 프로젝트에 글꼴 집어넣기.  찾기 쉽게  Assets -> TestMesh Pro -> Resource -> Fonts & Materials 에 넣어준다  4. Fonts Asset Creator에 들어가 Source Font File에 다운받은 글꼴을 넣어주고 위와 같이 설정을 맞춘뒤 Generate 클릭 * 수정할게 하나 있다더보기32-126, 44032-55023, 8200-8280Character Sequence에 해당 사진 말고 이 숫자를 넣어주자최대한 용량을 아끼기 위해 쓸데없는 특수문자나 한글의 자모음을 제외한 범위이다 5. 로딩이 완료되면 Save를 누른다6. UI로 글꼴을 넣은뒤 Font ..

Vector와 transform 응용, UI 표시, 효과음 삽입

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Carcontroller : MonoBehaviour { float carspeed; void Update() { if (Input.GetMouseButtonDown(0)) { carspeed = 0.1f; } transform.Translate(this.carspeed, 0, 0); this.carspeed *= 0.99f; } } 우선 전 글에서 배운걸 응용하여 클릭한번에 0.1f의 힘만큼 움직이다 서서히 멈추게 한다 carcontroller 스크립트를 만들어 car에 집어넣었다 하지만 내가 원하는건 클릭할때 움직이는것이 아닌, 마우스가 ..

오브젝트, 스크립트, 각종 파일 정리

유니티의 기능은 아니지만 한 프로젝트안 여러 씬, 혹은 웬만한 연습 프로젝트들은 하나하나 따로 만들것이 아니라 무조건 같은 프로젝트안에집어넣고 정리하는것이 효율적이다 여태 새로운거 하나 만들때마다 늘 새 프로젝트를 짜서 따로 만들었는데 나는 이 한 프로젝트가 이렇게 용량을 많이 먹을줄 몰랐다. 그리고 나중에 미리 써놨던 코드를 재사용하기 위해서라도 이 방식이 편하다고 한다

Vector2 클래스, transform, GetMouseButtonDown

using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewBehaviourScript : MonoBehaviour { void Start() { Vector2 start = new Vector2(3.0f, 5.0f); Vector2 end = new Vector2(11.0f, 15.0f); Vector2 dir = end - start; Debug.Log(dir); Debug.Log(dir.magnitude); } } Vector2는 엄연한 클래스이기 때문에 변수를 만들어준뒤 값을 넣어줘야 한다 Vector 클래스에 들어가는 값들은 float형이다 Ventor2 dir = start - end..

총정리 (용어정리)

과제를 하려니 지금까지 너무 대충 공부를 해왔다는게 느껴져 다시 기본부터 복습하기로 했다 Hierarchy : Scene뷰에 배치한 오브젝트 이름을 목록으로 표시 Project : 게임에서 사용하는 리소스를 관리 Inspector : Scene 뷰에서 선택한 오브젝트의 상세정보 메서드 : 길어진 스크립트를 효과적으로 관리하기 위해 의미가 있는 처리 블록으로 분해하고 이름을 붙인 각각의 처리 → 인수 : 메서드로 건네는 값 → 반환값 : 메서드에서 돌려받는 값 인수는 여러개가 들어갈수 있으나 반환값은 무조건 1개이다 인수가 없을때는 int Add() 반환값이 없을때는 void Add(int a, int b) int Add(int a, int b) { int c = a+b; return c; } [반환 데이..

오브젝트의 크기,위치를 변경할때

가끔씩 애니메이션이 적용된 오브젝트를 조절할때 Transform에서 곧바로 건드리는건 좋은방법이 아니다 기왕이면 메인 카메라의 size를 조절하거나 꼭 건드려야한다면 폴더를 하나 만들고 그 안에 오브젝트를 집어넣은뒤 Transform을 건드리는편이 좋다 그리고 폴더 안으로 들어가 부모자식 관계가 된 오브젝트의 위치를 변경할땐 부모의 위치에 있는 폴더를 선택한뒤 위치를 변경해주는게 보편적이다

반응형