고정 조인트 기능 정보

3996 단어 FixedJointUnity3DC#

Fixed Joint 정보



이번에는 Fixed Joint의 기능을 사용하여 객체끼리를 붙이는 방법을 간단히 설명해 가고 싶습니다.

이번에는 이하의 2개의 오브젝트를 사용해 설명해 가고 싶습니다.




Cube에 이런 스크립트를 붙여 보았습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeScript : MonoBehaviour
{
    private float one = 0.05f;
    // Start is called before the first frame update
    void Start()
    {   
    }
    // Update is called once per frame
    void Update()
    {
        transform.position += new Vector3(one, 0, 0);
    }
}

그러면


물론 Capsule은 움직이지 않고 Cube만 진행합니다.

거기서 사용하는 것이 고정 조인트입니다.

Fixed Joint의 기능




- Connected Body: 붙이고 싶은 오브젝트를 넣는 장소
- Break Force : 붙인 물체를 놓는 데 필요한 힘
- Break Torque : 붙인 물체를 놓는 데 필요한 토크
- Enable Collision : 체크를 하면 붙인 오브젝트끼리 충돌을 할 수 있다
- Enable Preprocessing : 체크를 하면 불가능한 움직임을 했을 때 안정된 움직임을 취하도록 한다
- Mass Scale: 질량의 크기
- Connected Mass Scale: 붙인 물체의 질량 크기

이번은 Script로 Fixed Joint의 해제를 할 예정이므로, Connected Body에 Capsule을 넣는 것만으로 OK입니다!





주의: 붙이는 객체에는 반드시 RigidBody가 붙어 있는지 확인하십시오.



【물리적인 일을 할 때는 Rigidbody를 붙인다】라는 Unity의 철칙이 있으므로, 이번에도 그 철칙에 따라, 반드시 Rigidbody가 양쪽에 대해서 있는지 확인해 주세요

(연결하고 싶은 Object에 Rigidbody가 붙어 있지 않으면 Fixed Joint의 Connected Body에 넣을 수 없습니다)

Connected Body에 Capsule을 넣고 실행하면. . .





이 상태에서는 Capsule이 끌려가는 바람이므로 Cube의 Rigidbody를 열고 Constraint에서 Freeze Rotationno z에 체크를 넣습니다.

*

Z축의 Rotation을 고정했기 때문에. . .



이것으로 완성입니다!

부기



if 문과 Destroy를 사용하면 쉽게 Component를 해제하거나 추가 할 수 있으므로이 기회에 꼭 Fixed Joint를 사용해보십시오
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeScript : MonoBehaviour
{
    private float one = 0.05f;
    // Start is called before the first frame update
    void Start()
    {   
    }
    // Update is called once per frame
    void Update()
    {

        transform.position += new Vector3(one, 0, 0);
       if (Input.GetMouseButtonDown(0))
        {
            FixedJoint component = this.gameObject.GetComponent<FixedJoint>();
            Destroy(component);
        }

    }
}

좋은 웹페이지 즐겨찾기