2016-09-18 4 views
1

현재 C#을 통해 게임을 하나 하나 만들려고합니다. 나는이 시점에서 내가 잘했다고 생각한다.C# Unity 게임 테스트

박스 왼쪽에서 오른쪽으로 이동하고 당신은 당신이 더가는 배치 마지막 상자에 있다면 그것을 를 스택 공간을 누릅니다

게임은 스태커 게임이다.

하지만 내 문제는 다음과 같습니다. 상자는 블렌더에서 만든 개체입니다.

하지만 플레이어가 블렌더에서 만든 상자처럼 보이도록 현재 상자 아래에 상자를 만들고 싶습니다.

어떻게하면됩니까? 이 시점에서 나는 단지 다음을 사용한다 :

GameObject cb = GameObject.CreatePrimitive(PrimitiveType.Cube); 
    cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ); 

정상적인 큐브를 생성한다.

+0

당신은 아마 그들이 도움을 – Dunno

답변

0

2 줄의 코드가 방금 언급 한 모든 것을 수행 할 수 있다고 생각하지 않습니다. 다행히도, 그것은 코드에서 발췌 한 것입니다.

하지만 내 문제는 다음과 같습니다. 상자는 블렌더에서 만든 개체입니다.

하지만 나는 현재 상자 아래에있는 상자를 만들고 싶습니다. 플레이어는 내가 블렌더에서 만든 상자처럼 보이도록 제어하고 있습니다.

당신은 .fbx, .blend 또는 유니티에서 지원하는 모든 다른 3D 모델 형식으로 블렌더에서 상자를 수출해야합니다. 그런 다음 내 보낸 파일을 Unity로 가져올 수 있습니다. Here은이를위한 자습서입니다. 조립식로 큐브/게임 오브젝트를 가져

만들기는 새 큐브를 대신 GameObject.CreatePrimitive 각각의 시간을 만들 수 Instantiate 기능을 사용합니다.

boxPrfab 슬롯에 그 조립식 드래그해야합니다

public GameObject boxPrfab; 
GameObject cb = Instantiate(boxPrfab, Vector3.zero, Quaternion.identity) as GameObject; 
cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ); 

에 현재의 코드를 변경

.

+0

덕분에 작동하는 방법 구글, 조립식하지만, 스피 하나의 문제 왼쪽 필요 : 난 당신처럼 그것을했다 고 말했다. 그러나 지금 내가 공간을 눌러서 여러 상자와 지상 비행기가있다. 상자의 많은 복제품이 없어야한다. 그리고 그들은 모두 제자리에 없다. 그림을 여기에 넣을 수있는 방법이 있는가? –

+0

나는 내가 코드를 실행하기 위해 만드는 새 큐브를 원하지 않는다고 생각하는 것을 잊어 버렸다고 생각한다. 나는 단지 그들에게 내 물건처럼 보이기를 원할지도 모른다. 아마도 더 쉬운 방법 일까? 아니면 그렇게하는 것이 가장 좋은 방법일까요? –

+0

사진을 올리는 데 충분한 평판이 없습니다. imgur.com에 사진을 업로드 한 다음 질문에 여기에 URL을 제공하십시오. 당신의 문제에 관해서는, 나는 당신이 지금 어떤 문제를 가지고 있는지 이해하지 못합니다. 귀하의 질문에 코드가 작동하는 한, 내 질문에 하나는 당신을 위해 일해야합니다. – Programmer

0

스폰하기 원하는 장면이 이미 boxGameObject 인 것으로 가정합니다. Project 탭에서 Prefab을 마우스 오른쪽 버튼으로 클릭하고 Create ->Prefab을 선택하여 만듭니다. prefab에 e와 같이 민감한 이름을 붙이십시오. 지. BoxPrefab. boxGameObjectHierarchy 탭에서 Project 탭으로 드래그 앤 드롭하여 새로 생성 된 프리 패브 항목에 놓습니다.

이제 인스턴스 생성을 위해 공개 멤버 변수를 스크립트에 추가 할 수 있습니다. 지. 같은 :

public GameObject PrefabBox = null; 

그런 다음 당신은 Inspector 탭에 그 새 속성 PrefabBox 위에 Project 탭에서 이전에 만든 조립식 항목을 drag'n'drop. 같은 스크립트에서 프리 패브의 생성을 인스턴스화 할 수 있습니다. 지.다음 코드로 :

GameObject boxSpawn = GameObject.Instantiate<GameObject>(
    PrefabBox, 
    new Vector3(CurrentX, CurrentY, CurrentZ), 
    PrefabBox.transform.rotation); 

Find more info on instantiating GameObjects dynamically in the Unity3d docs.

Find the syntax of GameObject.Instantiate here.