2017-12-10 2 views
1

안녕하세요, 저는 조립식에 4 개의 버튼이 있습니다. 더하기 버튼이 있습니다 - 버튼을 클릭하면 + 버튼을 클릭하면 다른 버튼을 2 번 눌러 텍스트를 편집해야합니다. 10을 판매하고 10을 구매하고 +를 다시 클릭하면 구매 20 및 판매 20 등이 표시됩니다.Unity 버튼 클릭시

이 버튼은 기본 프리 팹에 aC# 스크립트를 추가하고 + 및 -의 on_click 기능을 사용하여 설정되었습니다. 버튼. 내가 겪고있는 문제는 다른 두 버튼의 텍스트를 변경하는 가장 좋은 방법입니다. 이 프리 팹은 상점 페이지에서 100-200x 아이템을 만들기 위해 동적으로 만들어지기 때문에 프리 팹에 부착 된 스크립트에서 2 개의 게임 객체를 생성하고 두 버튼을 드래그하는 것을 생각하고있었습니다.하지만 더 나은 방법이 있어야합니다. 단추의 텍스트 구성 요소를 추가하십시오.

도움을 주시면 감사하겠습니다. 클릭이 모두 구매를 업데이트하고에 버튼을 판매 - (가) 또는 + 때 있도록

enter image description here enter image description here

은 내가 무엇을 찾고하는 것이 가장 좋은 방법입니다 :

나는 명확히하기 위해 일부 이미지를 포함했다 10에서 100으로 또는 그 반대로 이동하십시오. 이것은 조립식이며, 최고의 성능을 발휘할 수있는 방법을 찾기 위해 200-300 번 복제 될 것입니다.

+0

나는 완전히 당신을 따를지는 모르겠다. 어떤 이벤트에서 버튼의 텍스트를 변경하는 것과 같은 UI의 상태 변화를 처리하는 좋은 방법에 대한 질문입니까? – Maakep

+0

명확히하기 위해 이미지와 진술을 업로드했습니다. – Adam

답변

0

다음은 대개 UI를 변수에 깔끔하게 매핑하는 방법입니다. 궁금한 점이 있으면 알려주십시오. 솔루션에 더욱 맞춤화하기를 원한다면 코드의 일부와 오늘날의 작동 방식을 보여줘야합니다.

public class YourClass : MonoBehaviour 
{ 
    private Text sellButtonText; 

    private int _sellAmount; 
    public int SellAmount 
    { 
     get 
     { 
     return _sellAmount; 
     } 
     set 
     { 
     _sellAmount = value; 
     _sellButtonText = "Sell " + _sellAmount; 
     } 
    } 


    void Start() 
    { 
     _sellButtonText = GameObject.Find("The Object with Sell button").GetComponent<Text>(); 
    } 
} 

당신은 변수도 지정 getter 및 setter를 사용하여 UI에 표시되는 내용 변경됩니다 변경 공개, 누구에 변수 SellAmount 노출 : 이것은 일반 내가 일반적으로 사용하는 개념이다.

이 아키텍처에 익숙하지 않은 이유와 개인 _sellAmount가 필요한 이유는 무한 루프를 방지하기 위해서입니다. get 및 set 메소드는 get 메소드가 동일한 변수를 리턴하면 동일한 get 메소드를 다시 입력 할 수 있기 때문에 다른 변수에 데이터를 저장해야한다. set과 동일하게 동일한 변수를 설정합니다. 동일한 변수는 동일한 set-method로 들어가며, 동일한 변수는 동일한 set-method로 설정됩니다. 이 문제를 해결하려면 다른 개인 회원에게 저장하십시오.

0

해결책을 찾았습니다. unityengine.ui을 사용하여 추가하는 것을 잊었습니다. 그런 다음 공개 텍스트를 만들고 단추의 텍스트를 드래그 할 수 있습니다.