프리 프레임으로 2 개의 Sphere GameObject가 있습니다. 그들은 강체가 부착되어 있습니다. 나는 그들이 표면에 얹혀지기를 원하지만 서로 충돌 할 때 서로 상호 작용하기를 원한다. (서로를 밀어 붙이고, 서로 튀고, 멍청하다.) 그러나 게임보기에서 프리 팹을 드래그하면 rigidbody "중력 사용"체크 상자가 꺼지고 객체가 떠있게됩니다! 나는 이것을 원하지 않는다. 그래서 나는 "중력을 사용한다". 이제 그들은 현장에 배치되지만 오랜 시간이 걸려 바닥에 떨어지게됩니다. 그리고 나는 그 주위를 끌고 갈 때 여전히 주위에 떠있을 수 있습니다. 어떻게 그들을 표면에 머물게하지만 서로 상호 작용하게합니까?GameObject Prefabs floating away
내가
(Get-the-GameObject).GetComponent<Rigidbody>().velocity = Vector3.zero;
같은 일을 시도하지만 아무것도하지 않습니다.
그림에서 바닥에 구를 놓았지만 멀리 떠있는 것을 볼 수 있습니다! 물리 에디터에서 중력은 -9.81의 Y- 컴포넌트로 설정됩니다.
편집 : 내 구체의 비늘을 약 5 정도로 작게 만들었고 바닥에 떨어 뜨려 왼쪽으로 미끄러 져 들어가기 시작합니다. 바닥은 ... 지금 주위에 슬라이딩되는 이유가 궁금 그래서 어떤 방법으로 기울어되지
편집 :
분야는 사용자가 원하는 색상 상자를 클릭하고 그것을 끌어 인스턴스화 책상 공간과 석방. 일단 풀려 나면 떠 다니기 시작합니다. 여기에 해당 코드가 있습니다.
void OnMouseDown()
{
clone = (GameObject)Instantiate(prefab_to_instatiate, hit.point, Quaternion.identity);
}
void OnMouseDrag()
{
// Code to make an atom follow the mouse cursor
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit2;
if(Physics.Raycast(ray, out hit2, Camera.main.farClipPlane))
{
float oldY = transform.position.y;
clone.transform.position = new Vector3(hit2.point.x, oldY, hit2.point.z);
}
}
편집 2 : 나는 비디오를 제공하는 경우 무슨 일이 일어나고 있는지 설명하는 가장 좋은 방법입니다. 여기에 링크 : https://vimeo.com/185419058
나는 원자가있는 상자를 클릭하고, 마우스 버튼을 눌러서 책상 영역으로 끌어 놓았다가 놓습니다. 그러나 마우스를 움직이지 않아도 마우스를 드래그하면 동영상에서 미친 듯이 튀어 오르는 원자를 볼 수 있습니다. 그런 다음, 내가 풀어 줄 때, 그것은 미끄러지기 시작합니다. 이 미친 효과를 모두 얻지 않고 클릭하고 드래그하여 위치에 배치하기 만하면됩니다. 이것은 내가 만든 모든 원자 위에 강체를 제거하면 내가 원하는 방식으로 작동한다. 그러나 나는 원자들이 서로 근접 할 때 상호 작용하기를 원하기 때문에 강체를 사용할 수 있기를 바란다.
월드 스케일에 상대적인 오브젝트의 스케일은 무엇입니까? 만약 그들이 거대하다면, 중력의 영향은 조금 "떠 다니는"것처럼 보일 것입니다. – Serlite
내 구체의 범위는 40-50입니다. – noblerare
구체의 이동을 제어하는 다른 스크립트가 있습니까? 구체의 장면 계층/속성을 볼 수 있습니까? – Serlite