void Update()
{
if(lineCon_1)
{
line.enabled = true;
}
if(!lineCon_1)
{
line.enabled = false;
}
if(playerScript.lineBool_1)
{
lineCon_1 = false;
}
}
이게 원래 쓰던방식이고
public bool lineCon_1
{
get
{
return lineCon_1;
}
set
{
if(lineCon_1)
{
line.enabled = true;
}
if(!lineCon_1)
{
line.enabled = false;
}
if(playerScript.lineBool_1)
{
lineCon_1 = false;
}
}
}
이게 바꾼거
if(hit.collider.GetComponent<Collider>().tag == "DOOR")
{
GameObject hitTarget = hit.collider.gameObject;
DoorAction open = hitTarget.GetComponent<DoorAction>();
Outline_Controller line = hitTarget.GetComponent<Outline_Controller>();
lineBool_1 = false;
line.lineCon_1 = true; ////////////////////////////////////요기서 씀
DoorHandle handle_B = hitTarget.transform.Find("DoorHandle_B").gameObject.GetComponent<DoorHandle>();
DoorHandle handle_F = hitTarget.transform.Find("DoorHandle_F").gameObject.GetComponent<DoorHandle>();
if(Input.GetKeyDown(KeyCode.E))
{
if(open.state_1 && open.state_3)
{
open.Open();
handle_B.Open();
handle_F.Open();
hitTarget.gameObject.tag = "Untagged";
}
if(open.state_2 && !open.state_3)
{
open.Close();
hitTarget.gameObject.tag = "Untagged";
}
}
}
이게 프로퍼티 작동인데
코드에러는 안떠서 실행해보면 팅겨부리네;;
bool LineCon_1; bool lineCon_1 {get;set;}
프로퍼티는 프로퍼티 자체를 가지고 하는게 아니라 다른 변수 조작하는거
저기 이해가 잘안되서그런데 어딜 바꿔주는거야??
뭘 구현하는건지는 모르겠는데 대충 뭐 변수에 값 대입이 감지되면 코드가 실행되는거임?
일단 저거 코드 멈추는 이유는 get에서는 return으로 자기 자신을 반환하기 위해 자기 자신에게 get을 요청하고 다시 get에서는 return으로 자기 자신을... 무한반복임. 다른 변수를 조작하는게 프로퍼티임
웅 나도 방금 좀 수정해봣거든?? 잠깐만있다가 다시올려보꼐 관심고마워
set 쪽에서도 get 요청했다가 무한루프 빠져서 뻑가는거고. get쪽에서 문제 발생했음. bool 변수 하나 더 만들어서 그걸 조작하는 방식으로 해야 함.
해당 댓글은 삭제되었습니다.
ㅇㅇ 그니까말야 인터넷 예제보니까 프로퍼티에 int 이용하는거밖에없더라구 난 bool값을 이용하고싶은데 어떻게바꿔줘야할까?
변수 getter setter를 c# 방식으로 좀 더 깔끔하게 축약시킨 방식임
윗 댓삭 미안 먼가했는데 c#이 안익숙해서 그런거였음
? 아냐 난 관심만으로도 고마워
bool Val { get => return val; set => val = value; } bool val; 대충 이거 보면 이해 갈것 같음
프로퍼티 저거를 안쓰고 풀이해보면 GetVal(), SetVal(bool value) 함수를 만드는것과 같음 게터세터 만들기 귀찮으니까 프로퍼티로 만들어버린거
고마버!!!
public bool lineCon_1 이거 반환하는게 자기니까 무한반복되니까 아예 멈추지
public bool LINECON_1{ return lineCon_1 } 이런식으로 반환값을 바꿔줘야되 자기자신 반환하면 무한반복해서 멈춤
public bool LINECON_1{ get{ return lineCon_1 } }
아 좀알거같다 고마워
해결! 다들고마워!