2017-02-27 1 views
-4

나는 히트시 무작위로 생성되는 3D 게임을 가지고 있습니다. 문제는 물체가 충돌을 일으키지 않고 문자가 벽을 통해 움직이기 시작한다는 것입니다. C#에서 충돌로 생성 될 객체에 필요한 코드는 무엇입니까?개체의 단일 3D 콜리 싱

+1

가능한 중복 도와

호프 (http://stackoverflow.com/questions/36353310/unity-collision-not-being-detected) – thodic

+0

1. UnityScript는 다르다 언어는 C# 2보다 큽니다. * "객체는 콜리 전을 생성하지 않습니다"*는 무엇을 의미합니까? 그들은 그들에게 할당 된 충돌 자 및/또는 강체를 가지고 있습니까? – UnholySheep

+0

충돌이 작동하려면 오브젝트에 collider 구성 요소가 필요합니다. 대상 중 하나에는 강체가 필요합니다. 그보다 더 많은 도움이 필요하면 코드와 컨텍스트를 표시하십시오. – Maakep

답변

1

좋아요. 질문을 올바르게 읽은 경우 게임용 랜덤 메쉬가 자동으로 생성되지만 아직 충돌 장치가 없습니다. 당신은 당신이 발생하는 게임 오브젝트에 입자 가속기 구성 요소를 추가 할 필요가

using UnityEngine; 
using System.Collections; 

public class AddComponentExample : MonoBehaviour 
{ 
    void Start() 
    { 
     SphereCollider sc = gameObject.AddComponent<SphereCollider> as SphereCollider; 
    } 
} 

: #은 다음 예를 참조 C에서 객체의 입자 가속기를 생성합니다. 선택하는 메쉬가 생성 한 메쉬에 따라 달라 지므로 큐브 메쉬를 생성하는 경우 상자 콜라이더를 선택하십시오.

더 복잡한 프리미티브 대신 자신의 메시를 만드는 경우 "MeshCollider"를 적용 할 수 있습니다. 그러나 런타임에 자신 만의 메쉬를 생성하는 경우 비정상적인 인공물이 생길 수 있음을 경고하십시오. [검출되지 유니티 충돌]의

+1

일반 구문을 사용하는 것이 더 좋습니다. 유형을 잘못 입력하면 컴파일시 오류가 발생하지만 문자열 구문은 그렇지 않습니다. 'SphereCollider sc = gameObject.AddComponent SphereCollider로서의 () – Galandil

+0

사실 당신은 절대적으로 올바른 캐릭터입니다. 사실 유니티 5에서는 문자열 형식이 사용되지 않습니다. 내 대답을 조정합니다 :) –

+0

고마워요. 나는 질문이 멍청하다는 것을 알고 있으며, 나는이 모든 것을 처음 접했기 때문에 몇 가지 코드를 게시하는 것을 잊어 버렸다. 너 모두 조금 도와 줬어. 코드가 작동하면 적용 할 때 알려줄 것입니다. –

관련 문제