에디터에서는 문제가 없었지만
apk 파일로 녹스에서 실행하면 오브젝트 사이 거리가 벌어지는 문제가 발생하네요..
구글링으로 이것저것 시도해봤는데 똑같아서 질문드립니다
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class obj_infor
{
public Transform[] obj_position;
}
public class Move_Obj : MonoBehaviour
{
[SerializeField]
public List<obj_infor> obj_list = new List<obj_infor>();
public float[] speed;
public float disappear_point;
public float appear_point;
bool ismove = true;
void Update()
{
if (ismove == true)
{
for (int i = 0; i < obj_list.Count; i++)
{
for (int j = 0; j < obj_list[i].obj_position.Length; j++)
{
obj_list[i].obj_position[j].position += new Vector3(-speed[i] * Time.deltaTime, 0, 0);
}
}
for (int i = 0; i < obj_list.Count; i++)
{
for (int j = 0; j < obj_list[i].obj_position.Length; j++)
{
if (obj_list[i].obj_position[j].position.x <= disappear_point)
{
obj_list[i].obj_position[j].position = new Vector2(appear_point, obj_list[i].obj_position[j].position.y);
}
}
}
}
}
public void Stop_Move()
{
ismove = false;
}
public void Start_Move()
{
ismove = true;
}
}
appear point로 옮기지 마시고 disappear point로부터 appear point까지의 거리를 현재 x값에 더해주세요. 이유는 disappear point에 딱 닿았을 때 appear point로 이동하지 않기 때문에 오차가 생긴 것이고 스마트폰에서는 fps가 낮아 오차가 더 커 확연히 보인 것.
오 당장해보겠습니다!
float distance = disappear_point - obj_list[i].obj_position[j].position.x; obj_list[i].obj_position[j].position = new Vector2(appear_point + distance, obj_list[i].obj_position[j].position.y); 이런식으로 코드 수정했지만 여전히 똑같은 증상이 발생하네요.. 오차가 계속 발생되서 그런걸까요,,
obj_list[i].obj_position[j].position = new Vector2(obj_list[i].obj_position[j].position.x + (appear_point-disappear_point), obj_list[i].obj_position[j].position.y) 현재 위치에서 이동을 시켜주세요.
해결됐습니다 감사합니다!!