유니티/유니티 공부
-
물리엔진, 애니메이션, 씬변환유니티/유니티 공부 2024. 2. 5. 03:02
고양이를 올린뒤 rigidbody 2D와 box 콜라이더 추가 rigidbody 2D : 2D 한정 오브젝트에게 중력을 적용한다 Box Collider : 충돌판정을 위한 콜라이더 구름에게도 충돌판정을 위한 박스콜라이더를 입히면 게임 실행시 구름위에 고양이가 앉는걸 볼수있다 이렇게 Circle 콜라이더까지 추가해서 더 사실적으로 충돌판정을 만들수 있으나 정말 정교하게 만들지 않는다면 미끄러 넘어질수 있다 그럴땐 rigidbody의 Constrains로 들어가 축을 고정시킬수 있다 어느 축을 고정시키고 싶은지 알고 싶다면 3D 모드로 들어가 확인할수 있다 만약 구름에게도 rigidbody를 추가하지만 중력의 작용을 받고 싶지 않다면 Body Type에서 Kinematic을 선택하면 된다 이번에는 스페이스바..
-
프리팹, 충돌판정유니티/유니티 공부 2024. 2. 4. 19:27
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..
-
Vector와 transform 응용, UI 표시, 효과음 삽입유니티/유니티 공부 2024. 2. 3. 17:28
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유니티/유니티 공부 2024. 2. 3. 16:15
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..
-
총정리 (용어정리)유니티/유니티 공부 2024. 2. 3. 02:45
과제를 하려니 지금까지 너무 대충 공부를 해왔다는게 느껴져 다시 기본부터 복습하기로 했다 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; } [반환 데이..
-
물리엔진, 애니메이션, 씬 변환유니티/유니티 공부 2024. 2. 1. 01:25
public class Playercontrol : MonoBehaviour { Rigidbody2D rigidbody; float jumpforce = 350f; float walkforce = 30f; float maxwalkspeed = 2f; // Start is called before the first frame update void Start() { this.rigidbody = GetComponent(); } // Update is called once per frame void Update() { int key = 0 ; if(Input.GetKeyDown(KeyCode.Space)) { this.rigidbody.AddForce(transform.up * jumpforce); } //2..
-
물리엔진유니티/유니티 공부 2024. 1. 31. 02:13
고양이를 올려준뒤 Inspector 창에서 컴포넌트로 Rigidbody 2D를 추가하면 고양이에게 중력이 작용한것을 확인할수 있다 여기서 Circle Collider 2D를 추가하면 고양이 몸 주위에 원이 생성된다. 이는 충돌판정용으로 쓰인다 여기에 Box Collider까지 추가해 좀더 디테일한 충돌판정을 받아낼수 있다 구름을 추가한뒤 구름에도 Box Collider를 입힌다 실행을 하면 고양이의 하체부분이 둥글다보니 조금씩 미끄러지는것을 확인할수 있다 이것을 해결하는 방법은 두가지로, 첫번째는 정확히 가운데로 원과 사각형의 비율을 맞춰 미끄러지지 않게 하거나 아니면 Rigidbody의 Constraints에서 z축이 회전하지 않도록 고정시키는것이다 어디가 회전하는축인지 알고 싶다면 Scene창에서 2..
-
프리팹, 충돌판정 복습 & 물리엔진유니티/유니티 공부 2024. 1. 31. 01:44
오늘은 복습겸 어제 배운 프로젝트를 처음부터 다시 만들기로 했다 근데 자꾸만 스크립트를 집어넣으려고 하면 이런창이 뜨면서 스크립트 삽입이 안된다 검색을 해보니 스크립트 파일 이름과 스크립트 속 클래스의 이름이 다르다면 인식을 못한다는 이유였는데 확인을 해보니 스크립트 이름과 클래스 이름의 P의 대소문자가 서로 다른걸 확인할 수 있었다 근데 난 분명 스크립트 이름 쓸때 p를 대문자로 쓴적이 없는데 왜 이게 자꾸 이렇게 되는건지는 모르겠다 예를들어 내가 이렇게 p를 소문자로 잘 써놔도 지 맘대로 앞글자를 대문자 P로 바꿔버린다 어쨌든 클래스 이름 맨 앞을 대문자로 바꿔주니 문제해결. 걍 스크립트 이름 앞글자는 무조건 대문자로 쓰는 습관을 들여야할것같다 스크립트 삽입도 잘 되었다ㅎ 그렇게 1일차에서 만들었던 ..