2014-06-11 7 views
0

Unity에서 스프라이트를 따라 레이를 캐스팅하려고합니다. 나는 빈 GameObject를 만들었고 그것을 손쉽게 만들 수있는 캐릭터의 머리, 손, 가슴 등의 다른 텍스처에 부모로 만들었습니다. 이제는 근접 전투 용입니다. 공격을 애니메이션하는 동안 손 텍스처를 따라 레이를 캐스팅하고 싶습니다. 나는 장면에서 손 텍스처의 중심을 얻을 수 없다. 나는 다음과 같은 코드로 스프라이트에 액세스하려고Unity의 스프라이트를 따라 레이를 그리는 법

Sprite Hand = gameObject.GetComponentsInChildren <Transform>() [4].GetComponentsInChildren <Transform>() [0].gameObject.GetComponent <SpriteRenderer>().sprite; 
이 코드는 손에 액세스하기 위해 노력하고 있습니다

는 내가 변환 센터에서 레이 그리기

답변

1

보다는 실행에 그것을 찾으려고 노력에 의해 확인 변환 시간, 그냥 prefab/gameobject에 함께 링크. Inspector에 노출 시키면 스프라이트를 노출 된 변수로 드래그하는 것이 매우 간단합니다. 스프라이트 나 변형을 할 수 있습니다. 아래 예제에서 변형을 사용했지만 더 많은 데이터를 가져와야하는 경우 스프라이트를 사용하십시오. 당신이 충돌 각 위치에서 입자 가속기를 배치하는 것이 좋습니다를 확인하기 위해 찾고 있다면

public Transform Head; 
public Transform Hand; 
public Transform Chest; 

그런 다음 당신은 당신이 원하는 때 당신이 그렇게 (을 온/오프 전환 할 수 있습니다, Head.position

와 위치를 얻을 수 있습니다 캐릭터가 펀치를 당하지 않는 한 핸드 콜 리더가 작동하지 않으면 펀치의 지속 시간 (또는 그 일부) 동안 턴을 켭니다.) 그런 다음 콜러에서 손상을 입히거나 벽을 발견하는 등의 구성 요소를 가질 수 있습니다 당신은 성취하려고 노력하고 있습니다.

+0

해답을 주셔서 감사합니다. –

+1

콜라이더를 사용하도록 설정하면 제대로 작동하지만 공용 트랜스 폼 핸드에서 충돌을 식별하는 방법은 무엇입니까? –

+0

그렇지 않을 수도 있습니다. 대신에 콜라이더를 사용하여 변환에 구성 요소가 있어야합니다. 이렇게하면 행동을 격리 된 상태로 유지하는 데 도움이됩니다. 이 구성 요소는 원하는 동작을 관리합니다. 충돌자를 활성화/비활성화하는 클래스에 코드를 실제로 갖고 싶으면 메시지를 해당 소유자에게 브로드 캐스팅하는 구성 요소 만 빌드하면됩니다. 따라서 소유자 인 구성 요소에 게임 객체를 노출하면 전송 메시지를 사용하여 이벤트를 발생시키고 소유자 (http://docs.unity3d.com/ScriptReference/GameObject.SendMessage.html)에 데이터를 전달할 수 있습니다. – Formic

관련 문제