오늘 해야할 일은
- 채취 끝난 자원 색 변경 마무리
- RewardManager 안의 GiveReward() 작성
- 밤에 시간이 흐르게 하는것
1번과 2번은 미리 사전에 해두자 하고 적어두었 던 것이었고 3번은 오늘 추가되었다.
채취 끝난 자원 색의 경우

원래는 조금 어두워지거나 색이 좀 변경되는식으로 하고싶었는데 이게 최선이었다..
나는 계속 color만 수정할 생각을 하기도 했고 전체적으로 어떤식으로 변경해야 할지 막막했었는데
이렇게 할수있었던 데에는 튜터님께서 조언해주신게 큰 도움이 되었다.
일단 해당 프리팹은 MeshRenderer를 사용하고 있고, 머터리얼이 여러 개라서 전체 색을 수정하려면 renderer.materials 배열을 복사한 뒤 색을 바꾸고, 다시 할당해야 한다는 걸 알게 되었다.
renderer.materials는 내부 머터리얼 배열의 복사본을 반환하기 때문에, 수정만 하고 다시 할당하지 않으면 렌더러에 실제로 반영되지 않는다.
그래서 복사 → 수정 → 다시 할당 흐름으로 처리해야 한다.
BaseMap을 변경하는 식으로도 하고싶었는데 그 방법은 내가 이해가 되지 않아 패스했다..
private void ChangeAllMaterialsColor()
{
// resourceRenderer가 할당되지 않았다면 현재 게임 오브젝트에서 가져옴
if (resourceRenderer == null)
{
resourceRenderer = GetComponent<MeshRenderer>();
}
if (resourceRenderer != null)
{
// 모든 머테리얼 가져오기
Material[] materials = resourceRenderer.materials;
// 각 머테리얼의 색상 변경
for (int i = 0; i < materials.Length; i++)
{
materials[i].color = gatheredColor;
// 텍스처가 할당되어 있다면 텍스처도 변경 가능
if (grayTexture != null)
{
materials[i].mainTexture = grayTexture;
}
}
// 변경된 머테리얼 배열을 다시 적용
resourceRenderer.materials = materials;
}
else
{
Debug.LogWarning("MeshRenderer를 찾을 수 없습니다.");
}
}
하여 1번은 이렇게 마무리.
2번의 경우 일단 재화는 StageManager에 들어가있는데 재화만 구현되어있고 add는 따로 없어 여쭤보았는데 RewardManager쪽에서 그냥 추가하는 식으로 하면 된다고 말씀해주셔서 작성해두었다.
내가 이해한 대로 코드는 작성했으나 이해를 제대로 한건지도 모르겠고 테스트가 미흡하여 아직 정상적으로 작동하는지는 모르겠다. 그래서 테스트도 내일로..
여기에 사실 많은 시간이 들어 다른 작업들은 중간단계까지만 하고 마무리를 하지 못한 상태인데, 이렇게 하루씩 계속 밀리고....(ノへ ̄、) 2, 3번은 내일 마무리 제대로 짓고 1번은 나중에 리팩토링 하면서 다시 수정 예정이다.
'Unity > Project' 카테고리의 다른 글
| [Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 마무리 (0) | 2025.09.09 |
|---|---|
| [Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 25일차, ? (0) | 2025.05.13 |
| [Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 23일차, (0) | 2025.05.09 |
| [Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 22일차, (5) | 2025.05.08 |
| [Unity] 내배캠 최종프로젝트 : 루시퍼 서바이벌 21일차, (1) | 2025.05.08 |