TIL 37

qkrrlcks00·2024년 10월 17일
post-thumbnail

씬매니저로 로드하는데

SceneManager.LoadScene(1)
string값 대신 씬 인덱스번호를 넣어 안정적이게 됫다

플레이어 프리팹스로 하이스코어를 가져오려고

PlayerPrefs.SetString("highScore", (HighScoreTxt.text));
HighScoreTxt.text = PlayerPrefs.GetString("highScore");
햇는데 안됫다.

처음엔 SetInt(int.Parse(highscore)) 이렇게 사용했는데
유니티 오류로 자꾸 string이 들어갈수 없다고 떠서 저렇게 바꿔봣는데도 안됫다.
알보고니 haskey 를 사용해서 저장된것이 있는지 확인후 불러와야 하는것같다.

SetInt(string Key, int value)
SetFloat(string Key, float value)
SetString(string Key, string value)

GetInt(string Key)
GetFloat(string Key)
GetString(string Key)

DeleteAll() : 모든 데이터를 삭제한다.
DeleteKey(String Key) : Key와 대응하는 값을 삭제한다.
HasKey(String Key) : Key가 존재하는지 확인한다.
Save() : 수정된 모든 preferences를 파일에 저장한다.

몬스터를 랜덤하게 반복생성하려고

풀 스크립트에 있는 오브젝트 풀을 SerializeField로 받고

[SerializeField] private ObjectPool objectPool;

pool 변수에 있는 tag에 랜덤 0,2를 주어 0이 나오면 좀비를
나머지가 나오면 스켈레톤을 생성하게 만들었다
또 그 아래 위치도 각 화면 끝인 minX값과 maxX값에 동일하게 뽑아준
값을 넣어 왼쪽 오른쪽 랜덤하게 생성되게 만들었다

public void SpawnMonster()
{
    string tag = Random.Range(0, 2) == 0 ? "zombiePrefab" : "skeletonPrefab";
    GameObject monsterSpawn = objectPool.SpawnFromPool(tag);

    speed = 3;
    int randomX = Random.Range(0, 2);
    float spawnX = randomX == 0 ? minX : maxX;
    float spawnY = -2f;

    // 몬스터 위치 설정
    transform.position = new Vector2(spawnX, spawnY);
}
 

0개의 댓글