728x90

@@@ UNITY/이론 8

[UNITY] 다양한 이동 방법 (2) - Rigidbody 활용한 이동

이전에 작성한 이동 방법들은 전체적으로 position 을 강제로 이동시키는 류의 이동 방식 이 때문에 벽을 뚫는 버그들이 발생한다. 이를 해결하기 위해 rigidbody(물리적 속성)를 활용한 이동을 해보고자 한다. 1. Rigidbody.AddForce(이동방향 및 힘) 오브젝트에 힘주 추가하여주는 function 즉, 오브젝트에 일정한 힘을 주어 이동시키는 것 먼저 Rigidbody 속성 중 AddForce라는 function 사용 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RigidbodyMove : MonoBehaviour { Rigidbody rb; float power =..

@@@ UNITY/이론 2023.01.20

[UNITY] 다양한 이동 방법 (1)

이동 방법에는 여러 가지 방법이 있는 거 같았다. 현재 쓰고 있는 방식은 transform.position += moveDir * Time.deltaTime * Speed; 의 강제로 위치를 이동시켜주는 방식으로 하였다. 이렇게 할 경우 문제점은 벽이나 물체를 뚫고 지나갈 수 있다는 것이다. 하지만 보통 이동을 검색하면 왜 이걸알려주는거지? 1. Transform.position 가장 기본이 되는 방식으로 오브젝트의 위치를 직접 변경해주는 방식. 절대좌표는 월드좌표를 따른다. 사실 이동이라기보다는 위치를 강제로 변경해주는거에 가까운 방식 Transform의 구성요소인 position을 강제로 변경해서 이동시킨다. Vector3로 변경을 해주거나 가감해주는 방식 using System.Collections..

@@@ UNITY/이론 2023.01.20

[UNITY] OnCollision & OnTrigger

앞서 작성한 상호작용 코드를 보다가 2가지의 차이가 있다는 것을 알게되었다. 둘다 충돌 체크를 위한 함수이다. 충돌 처리 공통 조건 1. 두 오브젝트가 collider를 가지고 있어야 한다. 어떤 종류의 collider이든 두 오브젝트가 collider 가지고 충돌을 감지할 수 있어야한다. 2. 적어도 하나의 오브젝트는 Rigidbody를 가지고 있어야 한다. 두 오브젝트 중 하나 이상이 Rigidbody를 가지고 있어야한다. rigid body는 직역하면 강체라는 의미로 물리학에서 형태가 고정되어 변하지 않는 물체를 가르킨다 unity에서는 Rigidbody 는 GameObject 가 물리 제어로 동작하게 합니다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해줍니다. 리지드바디가 포..

@@@ UNITY/이론 2023.01.20

[UNITY] 오브젝트 상호작용

오브젝트와 상호 작용을 하는 코드를 위해서 OnTrigger 함수들을 활용했다. OnTrigger 함수 OnTriggerEnter 물체간의 충돌이 처음 일어났을 때 호출 OnTriggerStay 물체간의 충돌이 일어난 후 충돌이 지속될 때 호출 OnTriggerExit 물체간의 충돌이 끝나는 순간에 호출 void OnTriggerEnter(Collider other) { Debug.Log(other.gameObject.name); Debug.Log(other.gameObject.tag); } void OnTriggerStay(Collider other) { Debug.Log(other.gameObject.name); Debug.Log(other.gameObject.tag); } void OnTrigger..

@@@ UNITY/이론 2023.01.19

[UNITY] 벽 뚫기 방지

여러가지 방법을 생각해봤다. raycast 접촉시 정지 - 접촉 후 움직일 수 가 없음 trigger 작동시 정지 - 위와 동일 collider 두께 늘리기 - 가능성 있음 raycast 접촉시 속도 줄이기 - 가능성 있음 void StopToWall() { Debug.DrawRay(transform.position, transform.forward * 0.5f, Color.green); isBorder = Physics.Raycast(transform.position, transform.forward, 0.5f, LayerMask.GetMask("Wall")); Debug.Log(isBorder); if (isBorder) { Speed = 1f; } else { Speed = 10f; } } priv..

@@@ UNITY/이론 2023.01.19

[UNITY] 문 열고 닫기

Unity 3D 문 열기/닫기 — 쩡우 (tistory.com) Unity 3D 문 열기/닫기 Unity 3D 문열기/닫기 소스 using System.Collections; using System.Collections.Generic; using UnityEngine; public class DoorScript : MonoBehaviour { public bool open = false; public float doorOpenAngle = 90f; public float doorCloseAngle = 0f; public f jjungwooo.tistory.com 중심이동 유니티 문 열기 어떻게 구현해야하지.. 참고할것좀 있나? ( 추가) - 인디 게임 개발 마이너 갤러리 (dcinside.com) 유니티..

@@@ UNITY/이론 2023.01.17

[UNITY] 마우스 클릭

마우스 이벤트 처리 중 클릭에 관련된 기본 함수의 3가지 기능 GetMouseButtonDown 마우스 버튼을 클릭했을 때 true값을 반환 GetMouseButton 마우스 버튼을 클릭하고 있는 동안 true값을 반환 GetMouseButtonUp 마우스 버튼을 클릭하고 뗄 때 true값을 반환 위의 3가지 기능에 대해 조금 더 살펴 보겠습니다. 참고로 버튼 클릭을 숫자로 나눠서 인식을 하고 있습니다. 0 마우스 왼쪽 클릭 1 마우스 가운데 클릭 2 마우스 오른쪽 클릭 GetMouseButtonDown 마우스를 클릭했을 때 true값을 반환합니다. 실제 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; ..

@@@ UNITY/이론 2023.01.04
728x90