profile image

L o a d i n g . . .

article thumbnail image
Published 2020. 9. 7. 00:53
반응형

Resource Manager

public class PrefabTest : MonoBehaviour
{
    GameObject prefab;
    GameObject tank;

    void Start()
    {
        // Load 기준: Resources 폴더
        prefab = Resources.Load<GameObject>("Prefabs/Tank");
        tank = Instantiate(prefab);    // 생성
        Destroy(tank, 3.0f);           // 삭제
    }
}

 

누가 언제 뭘 만드는지 관리하기가 힘들기 때문에 하나의 Manager로 처리하는 편이 좋다.

 

 

폴더 정리

Shader: 빛이 플레이어를 관통했을 때 어떻게 반사되느냐를 정의하는 파일이라고 생각하면 된다.

Model Prefab은 Prefab이 아니라 그냥 별도의 Model, 애셋이라고 생각하자.

 

 

Collider

Rigidbody

docs.unity3d.com/ScriptReference/Rigidbody.html

 

Unity - Scripting API: Rigidbody

Adding a Rigidbody component to an object will put its motion under the control of Unity's physics engine. Even without adding any code, a Rigidbody object will be pulled downward by gravity and will react to collisions with incoming objects if the right C

docs.unity3d.com

자주 사용하는 옵션 - Mass: 질량(kg) / Use Gravity: 중력을 사용할 것인지 / is Kinematic / Constraints

두 Collider가 충돌하는 것이기 때문에 Player만 Collider를 가지고 있어서는 아무런 처리를 할 수 없음에 유의한다!

 

 

Collision

Rigidbody - is Kinematic: 유니티 물리의 영향 여부

단, is Kinematic을 끄면 Use Gravity 여부에 상관없이 중력 또한 적용되지 않는다. 중력도 물리에 포함되기 때문이다.

Rigidbody는 물리를 사용하기 위해 붙이는 거라고 했는데, 이렇게 꺼 버리면 대체 무슨 쓸모가 있을까?
=> 물리뿐만 아니라, 충돌 판정을 이용하기 위해서! 

 

public class TestCollision : MonoBehaviour
{
    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log("Collision !");
    }
}

is Kinematic 켜기 / Player의 Capsule Collider 끔 / Cube의 Box Collider 끔 -> Collision X

Player의 Capsule Collider - is Trigger 켬 / Cube의 Box Collider - is Trigger 켬 -> Collision X, Trigger O

 

생각보다 Collision의 조건이 복잡하다. 

1) 나한테 Rigidbody가 있어야 한다. (isKinematic : Off)
2) 나한테 Collider가 있어야 한다. (isTrigger : Off)
3) 상대한테 Collider가 있어야 한다. (isTrigger : Off)
반응형
복사했습니다!