좋아, 나는 운이없는 Unity3d 공개 토론에 주변에 물었다. 나는 여기에 아주 간단한 것을 시도하고 있는데 어떤 이유 때문에 하나의 C# 스크립트가 다른 함수를 호출 할 수 없다.Cant에서 다른 스크립트의 메서드를 호출합니까? Unity 사용?
여기에 Unity에 있는데 GameObject에서 간단한 탭을 감지하고 그 탭을 기반으로하는 작업을 수행하는 데 사용하려는 2 개의 스크립트가 있습니다. OnMouseDown은 어떤 이유로 든 실패했습니다.
터치 된 객체의 스크립트에서 함수를 호출하기 위해 빈에 첨부 된 TouchManager 스크립트 사용에 대한 기사를 읽었으니 여기에 나와 있습니다. 그것은 Raycasts를 사용하고 감동을 게임 오브젝트를 취득하기로하고 Touched()
기능이라고 : 나는 배열 오류에 OutofBounds
을 얻고 있었다, 경우
protected virtual void Update() {
if (Input.touchCount > 1) {
if (Input.touches [0].phase == TouchPhase.Stationary) {
Ray ray = Camera.main.ScreenPointToRay (Input.touches [0].position);
if (Physics.Raycast (ray, out hit, 100.0f)) {
touchedObject = hit.transform.gameObject;
touchedObject.GetComponent<touchableGameObject>().Touched();
print (touchedObject.name);
} else print ("GetMouseButtonDown on nothing");
}
}
}
첫 번째 않고 있습니다. 그러나 지금은 처음으로 나는 아무 결과도 얻지 못한다면.
다음 조립식 나의 적 (객체가 명확하다) 난 그냥이에 : 호출 할 수 있어야하므로public void Touched() {
print ("touched!! WORKING");
}
함수가 public입니다. Start() 메서드에 인쇄가있어서 스크립트가 작동 중임을 알 수 있지만 게임 객체를 명확하게 터치하거나 클릭 할 때도 Touched()
메서드가 호출되지 않습니다. 인쇄 경우 터치 관리자 스크립트 문, 나는 일관되게 마지막으로 다른 사람을 얻을 것이다 경우 첫 번째없이
:
print ("GetMouseButtonDown on nothing");
나는 유니티와 C# 밖으로 질수 그림이 비교적 새로운 오전. 이 일이 필요하고 필사적이야.
다른 C# 스크립트의 터치를 기반으로 함수를 호출하는 방법은 무엇입니까?
아마도 게임 객체에 충돌이 발생했는지 확인 했습니까? – DRKblade