deltavr multiplayer 2.0

This commit is contained in:
Toomas Tamm
2023-05-08 15:56:10 +03:00
parent 978809a002
commit 07b9b9e2f4
10937 changed files with 2968397 additions and 1521012 deletions

View File

@@ -0,0 +1,56 @@
using FishNet.Connection;
using FishNet.Object;
using UnityEngine;
namespace _PROJECT.Components.Drawing
{
public class NetworkDrawingManager : NetworkBehaviour
{
private TextureDrawing _textureDrawing;
public override void OnStartServer()
{
base.OnStartServer();
_textureDrawing = GetComponent<TextureDrawing>();
}
[ServerRpc(RequireOwnership = false)]
public void RequestDrawOnTextureRPC(Vector2 textureCoord, Color drawColor, int brushSize, Vector3 angle)
{
DrawOnTextureRPC(textureCoord, drawColor, brushSize, angle);
}
public override void OnStartClient()
{
base.OnStartClient();
_textureDrawing = GetComponent<TextureDrawing>();
}
[ServerRpc(RequireOwnership = false)]
public void RequestCurrentTextureRPC(NetworkConnection conn = null)
{
if (_textureDrawing == null)
return;
SendCurrentTextureRPC(conn, _textureDrawing.initialDrawingTexture);
}
[TargetRpc]
private void SendCurrentTextureRPC(NetworkConnection conn, Texture2D currentTexture)
{
if (_textureDrawing == null)
return;
_textureDrawing.SetTempTexture(currentTexture);
}
[ObserversRpc]
private void DrawOnTextureRPC(Vector2 textureCoord, Color drawColor, int brushSize, Vector3 angle)
{
if (_textureDrawing == null)
return;
_textureDrawing.DrawOnTexture(textureCoord, drawColor, brushSize, angle);
}
}
}