Unity 83

[Unity][방법] Object충돌(Collision)_3 Ray사용하여 마우스 클릭좌표 얻기

Local -> Word > ViewPort -> Screen(화면) Input.mousePosition; //스크린 좌표 픽셀좌표 Camera.main.ScreenToViewportPoint(Input.mousePosition); // 특정 픽셀의 비율좌표 Ray 사용권장 #region Ray 사용한방법 if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); RaycastHit hit; if (Physics.Raycast(ray, o..

Unity 2022.10.05

[Unity][방법] Object충돌(Collision)_2 RaycastHit 레이저사용하기

RaycastHit[] hits; - 충돌된 오브젝트 변수 Physics.RaycastAll - 레이저 Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red); - debug를 통해 레이저 발사 방향 확인 void Update() { Vector3 look = transform.TransformDirection(Vector3.forward);//지역포지션 캐릭터 방향으로 레이저 발사를 위해. Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red);//debug를 통해 레이저 발사 방향 확인 #region 여러개 확인 RaycastHit[] hits; hits = Phys..

Unity 2022.10.05

[Unity][방법] Object충돌_1(Collision) OnCollisionEnter, OnTriggerEnter, OverlapSphere(설정반경오브젝트 확인) 방법

OnCollisionEnter OnCollisionEnter 보통 서든어택 같은 fps에서 사용할때 좋다. 총알이 맞은 후 행위 1) 나한테 혹은 상대에게 RigidBody가 있어야한다(IsKinematic : off) 2) 나한테 Collider가 있어야한다(IsTrigger : off) 3) 상대한테 Collider가 있어야한다(IsTrigger : off) IsKinematic - unity 물리엔진 사용유무 mass - 질량 public class TestCollision : MonoBehaviour { //1) 나한테 혹은 상대에게 RigidBody가 있어야한다(IsKinematic : off) //2) 나한테 Collider가 있어야한다(IsTrigger : off) //3) 상대한테 Coll..

Unity 2022.10.05

[Unity][방법] 프리팹 C#에서 생성 Instantiate

Instantiate(프리팹)를 사용하면 프리팹 객체를 인스턴스화 할 수 있다. public GameObject prefab; void Start() { Instantiate(prefab); } Destory(프리팹, 몇초후 사라질지)를 사용하면 프리팹 객체 인스턴스 메모리를 해제할 수 있다. public GameObject prefab; GameObject tank; void Start() { tank= Instantiate(prefab); Destroy(tank, 3.0f); } 프로젝트의 규모가 컨진다면 프리팹을 GameObject에 직접 연결하여 사용하기 힘들어진다. 그렇기 때문에 Resources파일에 Load를 사용하여 프리팹을 연결하여 사용한다. Resources파일에는 소스를 제외한 모든 ..

Unity 2022.10.04

[Unity][개념,방법] Rotation과 캐릭터 회전

Unity에서는 Quaternion을 사용하여 회전을 하는데 Vector3와 다르게 W 값이 추가로 존재한다. 이는 짐벌락이란 문제를 해결하기 위해 나온 방법이라고 한다. Quaternion과 짐벌락 관계는 이런 내용이다 1.x축, y축, z축 각각의 회전행렬을 만든다.yaw(y축 회전각) pitch(x축), roll(z축) 2. 회전 행렬을 객체의 변환행렬과 각각 순서대(x, y, z)로 곱한다.(오일러각) 3.x축을 90도 틀고난 후 y축으로 90도 튼 것과 y축을 90도 틀고난 후 z 축으로 90도 튼 것과의 회전 값이 같다. 4. 세 개의 축 각을 이용하여 항상 순서대로 회전을 하면 위와 같이 한 개의 축이 쓸모없게 된다. 이 현상이 짐벌락이다. 5. 이 문제는 계산을 한 번에 하지 않아서(세 번..

Unity 2022.10.04