Unity
-
[Unity] AddforceUnity 2022. 8. 23. 14:29
2가지의 형태 Addforce는 2가지의 형태를 가지고 있다. public void addForce (Vector3 force, ForceMode mode = ForceMode.Force); public void Addforce(float x, float y, float z, ForceMode mode = ForceMode.Force); 간단하게 하면 AddForce(방향*힘의 값, 힘의 종류) Addforce는 Rigidbody에 힘을 전달해주는 메서드다. ForceMode ForceMode에는 4가지가 있는데 4가지의 차이점은 질량을 무시하느냐와 연속적인 힘이냐에 따라 달라진다. Force 연속 + 질량 무시 X 현실적인 물리현상을 나타낼 때 많이 쓴다. Acceleration 연속 + 질량 무시 O..
-
[Unity] 유니티 생명주기 (Life Cycle)Unity 2022. 7. 27. 23:06
유니티 생명주기란? 유니티 스크립트의 대부분은 Monobehaviour클래스를 상속받아 만들어진다. 이 클래스를 상속받은 오브젝트는 Scene에 있는 동안 엔진에서 일정한 흐름에 따라 자동을 함수를 호출하는데, 이 패턴의 흐름을 생명 주기(Life Cycle)라고 부른다. 전체 흐름 전체적인 흐름은 공식 사이트를 보면 된다. https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.html 하지만 너무 복잡하고 많으니 자주 사용하는 함수들만 정리하겠다. 중요 흐름 시작 부분 Awake 스크립트가 실행될 때 1번만 호출된다. 오브젝트가 비활성화일 경우엔 호출되지 않지만 스크립트가 비활성화일 경우엔 호출된다. 생성자처럼 게임의 상태 또는 변수 초기화로 사용한다. 오브젝..
-
[Unity] 인스턴스화 Instantiate의 정리Unity 2022. 7. 25. 15:03
유니티에서의 인스턴스는 이미 만들어진 게임 오브젝트를 필요할 때마다 실시간으로 만든다는 의미이다. 보통 총알이나 몬스터를 찍어낼 때 사용한다. 인스턴스의 매개변수 GameObject original : 생성하고자 하는 게임오브젝트명. 현재 씬에 있는 게임 오브젝트나 Prefab으로 선언된 객체를 의미한다. Vector3 position : Vector3으로 생성될 위치를 설정한다. Quaternion rotation : 생성될 게임 오브젝트의 회전 값을 지정한다. 회전을 굳이 줘야할 상황이 아니라면, 그냥 기본값으로 설정한다. → Quaternion.identity 또는 게임오브젝트에서 설정된 회전 값, 즉 original.transform.rotation으로 작성해도 된다. 아래와 같이 선언해서 obj..
-
[Unity] 충돌 처리 Collision / Trigger의 정리Unity 2022. 7. 22. 16:22
충돌 발생 조건 충돌이 일어나기 위해서는, 두 오브젝트가 모두 Collider를 가지고 있어야 하며, 둘 중 하나 이상은 RigidBody 컴퍼넌트를 가지고 있어야 한다. 두개의 오브젝트 중 하나만 움직인다면 움직이는 오브젝트가RigidBody를 가지고 있어야 한다. Trigger Trigger는 오브젝트간의 물리적 연산을 하지 않고 충돌을 감지할 수 있다. 쉽게말해, 두 오브젝트가 접촉했을 때 서로 튕겨나가지 않고 그냥 통과하게 된다. Trigger를 쓰기 위해서는 해당 Collider의 Is Trigger 항목을 체크해야 한다. Trigger의 종류 Void OnTriggerEnter (Collider c) : 충돌이 시작되는 순간 호출 Void OnTriggerStay (Collider c) : 충..
-
[Unity] 코루틴(Coroutine) 정리Unity 2022. 7. 21. 11:32
코루틴을 사용하는 이유 유니티에서 특정 코드가 반복적으로 실행되기 위해 Update문에 코드를 작성하는데, 간혹 Update가 아닌 곳에서도 반복적으로 코드가 실행되어야할 필요가 있을 때가 있다. 이럴 때 코루틴을 사용하는 것이 매우 효과적이다. 또한, Update문을 사용하면 무조건적으로 Update문이 매 프레임마다 계속 반복적으로 실행되지만, 코루틴을 사용한다면 자신이 필요한 순간에만 반복하고 필요하지 않을 때에는 전혀 사용하지 않음으로써 자원관리를 매우 효과적으로 할 수 있다. 그 밖에도 당장 실행되는게 아니라 일정 시간동안 멈춰있다가 그 뒤에 동작하거나 특정 조건을 부여해서 코드가 실행되도록 할 수 있다. 사용법도 간단하면서 다양하게 활용이 가능하기 때문에, 코루틴은 실무에서 굉장히 빈번하게 사..