public void Interact(GameObject go) { if (_claimable) { CharacterBase characterInstance = go.GetComponent <CharacterBase>(); CharacterData characterData = characterInstance.Character; characterInstance.RecruitToSettlement(settlement); settlement.ClaimSettlement(characterData); settlement.SpawnUpgradeMarkers(); _claimable = false; } else { //Open the settlement UI GameObject settlementUI = Instantiate(settlementUIPrefab); ResourcesUIHandler resourcesUIHandler = settlementUI.GetComponentInChildren <ResourcesUIHandler>(); resourcesUIHandler.settlementData = settlement.SettlementData; SettlementInfoUIHandler infoUIHandler = settlementUI.GetComponentInChildren <SettlementInfoUIHandler>(); infoUIHandler.settlementData = settlement.SettlementData; infoUIHandler.UpdateCapacityText(); //Lock cam state Cursor.lockState = CursorLockMode.Confined; Camera.main.GetComponent <CharacterLook>().lockCamRotation = true; } }