버그 해결을 위한 모든 질문을 던져
0 votes
78 views
using System.Collections;
using UnityEngine.UI;
using UnityEngine;

public class CsSliderScript : MonoBehaviour
{
   public Slider ObjSlider;

   void Start () {
   
 
    }
    
    void Update()
    { float value;
      
      value = ObjSlider.value;
      
      Debug.Log("value" + value);
    }
}

 

여기서 value 값을 다른 스크립트에서 사용하고 싶습니다! 변수 선언을 한 뒤에 하는 여러 방법들을 찾아보긴 했지만 어려워서요...ㅠㅠ

지금은 로그에 뜨게 해 둔 상태인데 텍스트 UI에 슬라이드 값이 바뀌는 데로 반영하고 싶습니다!
asked (2 point) , 78 views

1 답변

0 votes
지역변수는 Scope내에서만 유효하기 때문에 다른 스크립트에서 접근이 안됩니다.

이미 value의 값을 가져올 대상인 슬라이더를 public Slider ObjSlider; 으로 선언해두셨기 때문에,

다른 스크립트에서 ObjSlider.value 로 접근할 수 있습니다.

 

초심자의 입장에서 다른 클래스의 인스턴스에 접근하는게 어렵게 느껴질 수 있는데,

class MyClass : MonoBehaviour {

public CsSliderScript sliderScript;

void Start() {

Debug.Log(sliderScript.ObjSlider.value);

}

}

처럼 클래스를 생성해 두고, 에디터의 인스펙터에서 직접 드래그 해 넣으신 뒤 sliderScript.ObjSlider.value 처럼 사용할 수 있습니다. 이 외에 스크립트로 대상 sliderScript를 찾고 싶다면, GetComponent와 GameObject.Find 류의 메소드들의 설명을 찾아보세요.
answered (78 point)

버그 해결을 위해 도움을 구하고, 도움을 주세요. 우리는 그렇게 발전합니다.

throw bug 는 프로그래밍에 대한 전분야를 다룹니다. 질문,논의거리,팁,정보공유 모든 것이 가능합니다. 프로그래밍과 관련이 없는 내용은 환영받지 못합니다.

424 질문
564 answers
572 댓글
38,369 users