using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class TimeSync : MonoBehaviour
{
public string naverUrl = "https://www.naver.com"; // naver.com을 대상으로 요청을 보낼 URL
private double meatIncrementInterval = 2 * 60; // 2분마다 증가
private double timeSinceLastIncrement;
void Start()
{
StartCoroutine(IncrementMeatPeriodically());
}
IEnumerator IncrementMeatPeriodically()
{
while (true)
{
yield return new WaitForSeconds(1f); // 1초마다 체크
// 2분이 지났는지 확인
if (timeSinceLastIncrement >= meatIncrementInterval)
{
StartCoroutine(GetNaverTime()); // 네이버의 시간 정보를 가져옵니다.
timeSinceLastIncrement = 0; // 시간 초기화
}
timeSinceLastIncrement += 1f; // 1초씩 증가
}
}
IEnumerator GetNaverTime()
{
UnityWebRequest request = UnityWebRequest.Get(naverUrl); // 이미 초기화
yield return request.SendWebRequest();
if (request.isNetworkError || request.isHttpError)
{
Debug.Log("Failed to get time from Naver: " + request.error);
}
else
{
string date = request.GetResponseHeader("date");
Debug.Log("Naver Time: " + date);
// 2분마다 증가할 로직 추가
if (sv.meat < 10)
{
sv.meat++;
Debug.Log("sv.meat Increased: " + sv.meat);
PlayerPrefs.SetInt("meat", sv.meat);
}
}
}
}
네, 코드를 확인해보니 몇 가지 문제점과 해결 방안을 제시할 수 있습니다. sv.meat 참조: sv.meat는 이 코드에서 정의되지 않았습니다. 아마 다른 스크립트나 클래스에서 정의된 것 같은데, 해당 스크립트 혹은 클래스의 인스턴스를 참조하고 있는지 확인해보세요. 만약 sv가 다른 스크립트나 클래스의 인스턴스라면, 해당 인스턴스를 참조하도록 해야 합니다.
2.GetNaverTime()의 호출: GetNaverTime() 코루틴은 timeSinceLastIncrement가 meatIncrementInterval보다 크거나 같을 때 호출됩니다. 이 조건이 충족되지 않으면 GetNaverTime()는 호출되지 않을 것입니다. 이 부분을 디버깅하여 조건이 제대로 충족되는지 확인해보세요.
3.네이버 시간 데이터: 현재 코드는 네이버의 웹 페이지를 요청하여 그 응답 헤더에서 date를 추출하여 사용하고 있습니다. 네이버 서버의 응답 헤더에 date가 포함되어 있는지 확인해야 합니다. 4.에러 처리: request.isNetworkError 혹은 request.isHttpError 일 때만 에러 로그를 출력하고 있습니다. 그 외의 상황에서는 어떠한 로그도 출력되지 않을 것입니다. 이 부분을 체크하여 네이버 서버로부터의 응답이 제대로 오는지 확인해보세요.
sv 클래스 안에서 정의됐고 sv.meat는 아무런 문제가 없다
5.PlayerPrefs: sv.meat 값을 증가시키고 나서 PlayerPrefs.SetInt("meat", sv.meat);를 통해 저장하고 있습니다. 이 값은 게임을 재시작할 때까지 유지됩니다. 게임을 여러 번 시작하면서 이전의 값이 유지되고 있는지 확인해보세요. 위의 사항들을 체크하면서 문제점을 찾아 수정해보시길 바랍니다.
지피티 복붙해봤어!
해당 댓글은 삭제되었습니다.
sv 스크립트에서 선언한 meat 변수라서 sv.meat라고 했어요