2017-12-14 22 views
0

나는이 장면을 체스 판과 조각들과 일치시킵니다. 각 그림과 체스 보드는 자산 저장소에서 다운로드 한 모델입니다. 그래서 사용자가 사각형을 클릭하고 그림을 클릭하여 체스 판에있는이 사각형으로 그림을 이동 시키길 원합니다. 내 게임 개체로 어떻게 할 수 있습니까? 사용자가 클릭 한 사각형의 좌표를 정의해야합니까? 그리고 사용자가 클릭 한 위치를 어떻게 추적 할 수 있습니까?다른 게임 개체에서 게임 개체 이동 Unity3D

내 장면은 다음과 같습니다 enter image description here

내가 평방 나에 의해 정의에 수치를 이동 그러한 스크립트를했다. 루크에 대한 예 :

void OnMouseDown() 
{ 
    transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + 71); 
} 
+1

이 방법을 사용할 수있는 방법이 많이 있습니다. 아마도 가장 도움이되는 것은 체스 판을 좌표 계산을 쉽게 할 수있는 방법으로 설정하는 것입니다. 예를 들어, A0의 중심이 세계 기원에 있고, indivdual 필드의 크기는 (1, 1)입니다. 콜라이더 나 비행기에 대해 레이 캐스트를하고 다음 정수로 반올림하여 개별 필드 좌표를 얻을 수 있습니다 ('Mathf.RoundToInt (float, float)'). ofc 당신은 또한 임의의 크기를 가질 수 있습니다. 계산하기가 좀 더 복잡합니다. (그러나 아주 기본적인 수학으로는 완전히 수행 가능합니다.) – yes

+0

게임 루프 측면에서, 플레이어가 먼저 움직일 조각을 선택하게 한 다음 그것을 옮길 사각형을 선택하십시오. 실생활에서 체스를 연주하는 방법에 더 가깝다는 점 외에도, 선택한 피스 (움직이는 규칙 및 그 주변의 다른 부분을 기반으로)에 대해 사용 가능한 동작을 표시하는 기능도 있습니다. – Serlite

+0

@Serlite 좋은 아이디어! 어떻게 사용자에게 가능한 동작을 제안 할 수 있습니까? 내 말은 사각형의 색상이나 조명을 변경하는 방법이 있습니까? – Cassie

답변

1

오히려 일부 그리드를 정의, 또는 가장 가까운 정수로 반올림보다, 당신은 단순히 모든 광장에 입자 가속기를 가질 수있다.

각 정사각형은 정사각형 충돌 레이어의 일부입니다. 그런 다음 모든 조각에 대해 동일한 작업을 수행하여 사각형 레이어와 상호 작용할 수 있도록합니다 (따라서 테이블을 통과하지 않습니다)

다음은 쉬운 부분입니다. 두 개의 레이 캐스트, 먼저 조각에 대해 사용자가 이동하려고하는 부분을 결정하고 두 번째 부분은 이동하려고하는 위치를 결정합니다 (그리고 조각을 사각형의 가운데로 이동).

This question 객체를 선택하는 방법을 알아 내려고합니다.