void CheckOpenedChestPos() { if (curObj == null) { return; } if (!IsCloseToPlayer(curObj)) { curObj = curObj.Interact(); } }
void GetInput() { //입력 받았을 때 if (!Input.GetKeyDown(PlayerActionKeys.Interact)) { return; } //이미 열려있는 상자가 있으면 if (curObj) { //그 상자 닫고 함수 종료 curObj = curObj.Interact(); return; } //열려있지 않은 상자들을 거리순으로 정렬 var chestsByDist = from chest in interactiveObjs where Vector2.Distance(chest.transform.position, player.position) < chestRange where chest.isInteractive orderby Vector2.Distance(chest.transform.position, player.position) select chest; //가장 가까운 상자가 InteractiveObj closest = chestsByDist.DefaultIfEmpty().First(); //존재하면 if (closest != null) { if (curObj) { Debug.Log(curObj.name); } //열린상자 갱신하고 엶 curObj = closest.Interact(); } }