59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using UnityEngine;
|
|
namespace AdamSync
|
|
{
|
|
public class SyncPlayerTransform : AsyncObjectBase
|
|
{
|
|
private string latestData = "";
|
|
|
|
private void Start()
|
|
{
|
|
//SyncCreateRoom.playerInfoRequset += ReceivePlayInfo;
|
|
//if (isPlayer)
|
|
//{
|
|
// StartCoroutine(SendMsg());
|
|
//}
|
|
//else
|
|
//{
|
|
// //string msg = string.Format("send2room online," + GlobeFlag.userID + "," + GlobeFlag.userName + "," + GlobeFlag.roomID);
|
|
// //_ = SyncCreateRoom.SendMessageAsync(msg);
|
|
//}
|
|
}
|
|
|
|
private IEnumerator SendMsg()
|
|
{
|
|
while (true)
|
|
{
|
|
yield return new WaitForSeconds(0.01f);
|
|
|
|
var nowData = GetSyncData();
|
|
if (!nowData.Equals(latestData))
|
|
{
|
|
latestData = nowData;
|
|
|
|
_ = SyncCreateRoom.SendMessageAsync(string.Format("player {0}", nowData));
|
|
}
|
|
}
|
|
}
|
|
|
|
public void ReceivePlayInfo(int id, string pos, string angle)
|
|
{
|
|
if (id.Equals(userID))
|
|
{
|
|
transform.position = Trans(pos);
|
|
transform.eulerAngles = Trans(angle);
|
|
}
|
|
}
|
|
|
|
private Vector3 Trans(string msg)
|
|
{
|
|
string[] data = msg.Split(',');
|
|
Vector3 temp = new Vector3(float.Parse(data[0]), float.Parse(data[1]), float.Parse(data[2]));
|
|
return temp;
|
|
}
|
|
|
|
}
|
|
}
|