using System; using UnityEngine; using UnityEngine.UI; public class SocketPlayer : JC.SocketIO.SocketIOClient { public PKGameMode_OnlinePK gameMode; void Start() { connectServer("http://192.168.101.14:8000/socket.io/"); } public override void onLoad() { Debug.Log("onLoad"); call("RandomMatchRoom", 0); } public override void onReload() { Debug.Log("onReload"); } public override void onDestroy() { Debug.Log("onDestroy"); } public override void onMiss() { Debug.Log("onMiss"); } bool isMyTime = false; float uploadTimeCountDown = 0; void Update() { if (playerIndex < 0) return; isMyTime = playerIndex == gameMode.currentPlayerIndex; BowCamera.ins.banUserControl = !isMyTime; if (isMyTime) { uploadTimeCountDown -= Time.deltaTime; if (uploadTimeCountDown <= 0) { uploadTimeCountDown = 1f / 30; UploadPKGameData(); } } else { BowCamera.ins.transform.rotation = Quaternion.Lerp(BowCamera.ins.transform.rotation, bowCameraTargetRotation, Time.deltaTime * 10); } } PKGameData pkGameDataSend = new PKGameData(); void UploadPKGameData() { Quaternion bowCameraR = BowCamera.ins.transform.rotation; pkGameDataSend.rx = bowCameraR.x; pkGameDataSend.ry = bowCameraR.y; pkGameDataSend.rz = bowCameraR.z; pkGameDataSend.rw = bowCameraR.w; call("UploadPKGameData", pkGameDataSend); } Quaternion bowCameraTargetRotation; public void OnReceivePKGameData(PKGameData pkGameData) { bowCameraTargetRotation.x = pkGameData.rx; bowCameraTargetRotation.y = pkGameData.ry; bowCameraTargetRotation.z = pkGameData.rz; bowCameraTargetRotation.w = pkGameData.rw; } //被服务器调用接口 int roomID; int playerIndex = -1; public void OnJoinRoomSuccess(int roomID, int playerIndex) { this.roomID = roomID; this.playerIndex = playerIndex; Debug.Log("OnJoinRoomSuccess " + roomID + ", " + playerIndex); } } public class PKGameData { public float rx; public float ry; public float rz; public float rw; }