older velnet changes - seems to be mostly samples

main
Anton Franzluebbers 2022-08-15 12:53:49 -04:00
parent a77cfc8a19
commit 4896d802ac
13 changed files with 191 additions and 112 deletions

19
.github/workflows/npm-publish.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Publish to Verdaccio
on:
push:
branches:
- main
jobs:
publish-npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: http://npm.ugavel.com/
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.VERDACCIO_TOKEN}}

View File

@ -5,7 +5,7 @@ Custom networking package for Unity
---
See [VelNetServer](https://github.com/velaboratory/VelNetServer) for description of the server.
See [VelNetServerRust](https://github.com/velaboratory/VelNetServerRust) for description of the server.
By contrast to the server, the Unity side is pretty complex.

View File

@ -29,6 +29,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8565720275311462455}
m_RootOrder: 0
@ -52,6 +53,7 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -123,6 +125,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7099230484513283147}
m_Father: {fileID: 0}
@ -162,6 +165,9 @@ MonoBehaviour:
networkObject: {fileID: 3951900052977689805}
serializationRateHz: 60
hybridOnChangeCompression: 1
position: 1
rotation: 1
scale: 0
useLocalTransform: 0
teleportDistance: 0
teleportAngle: 0

View File

@ -1,6 +1,8 @@
using UnityEngine;
using VelNet;
namespace VelNetExample
{
public class CustomMessageTest : MonoBehaviour
{
private void Start()
@ -20,3 +22,4 @@ public class CustomMessageTest : MonoBehaviour
};
}
}
}

View File

@ -1,6 +1,8 @@
using UnityEngine;
using VelNet;
namespace VelNetExample
{
public class MouseDragger : MonoBehaviour
{
private Camera cam;
@ -42,3 +44,4 @@ public class MouseDragger : MonoBehaviour
}
}
}
}

View File

@ -3,8 +3,10 @@ using System.Collections.Generic;
using Dissonance;
using UnityEngine;
using UnityEngine.UI;
using VelNet;
namespace VelNet
namespace VelNetExample
{
public class NetworkGUI : MonoBehaviour
{

View File

@ -2,9 +2,10 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEngine;
using VelNet;
using Random = UnityEngine.Random;
namespace VelNet
namespace VelNetExample
{
public class PlayerController : NetworkSerializedObjectStream
{

View File

@ -4,6 +4,8 @@ using System.IO;
using UnityEngine;
using VelNet;
namespace VelNetExample
{
public class RPCTest : NetworkComponent
{
private void Update()
@ -24,3 +26,4 @@ public class RPCTest : NetworkComponent
Debug.Log("WOW. BYTES");
}
}
}

View File

@ -2,6 +2,8 @@ using System.IO;
using UnityEngine.UI;
using VelNet;
namespace VelNetExample
{
public class SyncedTextbox : NetworkSerializedObjectStream
{
public InputField text;
@ -22,3 +24,4 @@ public class SyncedTextbox : NetworkSerializedObjectStream
networkObject.TakeOwnership();
}
}
}

View File

@ -1,6 +1,8 @@
using UnityEngine;
using VelNet;
namespace VelNetExample
{
public class VelNetMan : MonoBehaviour
{
public GameObject playerPrefab;
@ -14,3 +16,4 @@ public class VelNetMan : MonoBehaviour
};
}
}
}

View File

@ -9,12 +9,18 @@ namespace VelNet
[AddComponentMenu("VelNet/VelNet Sync Transform")]
public class SyncTransform : NetworkSerializedObjectStream
{
public bool useLocalTransform;
[Tooltip("0 to disable.")]
public float teleportDistance;
[Tooltip("0 to disable.")]
public float teleportAngle;
[Space]
public bool position = true;
public bool rotation = true;
[Tooltip("Scale is always local")] public bool scale;
[Space]
public bool useLocalTransform;
[Tooltip("0 to disable.")] public float teleportDistance;
[Tooltip("0 to disable.")] public float teleportAngle;
private Vector3 targetScale;
private Vector3 targetPosition;
private Quaternion targetRotation;
private float distanceAtReceiveTime;
@ -32,6 +38,8 @@ namespace VelNet
targetPosition = transform.position;
targetRotation = transform.rotation;
}
targetScale = transform.localScale;
}
/// <summary>
@ -39,8 +47,9 @@ namespace VelNet
/// </summary>
protected override void SendState(BinaryWriter writer)
{
writer.Write(transform.localPosition);
writer.Write(transform.localRotation);
if (position) writer.Write(transform.localPosition);
if (rotation) writer.Write(transform.localRotation);
if (scale) writer.Write(transform.localScale);
}
/// <summary>
@ -49,8 +58,9 @@ namespace VelNet
/// </summary>
protected override void ReceiveState(BinaryReader reader)
{
targetPosition = reader.ReadVector3();
targetRotation = reader.ReadQuaternion();
if (position) targetPosition = reader.ReadVector3();
if (rotation) targetRotation = reader.ReadQuaternion();
if (scale) targetScale = reader.ReadVector3();
// record the distance from the target for interpolation
if (useLocalTransform)
@ -61,6 +71,7 @@ namespace VelNet
{
transform.localPosition = targetPosition;
}
if (teleportAngle != 0 && teleportAngle < angleAtReceiveTime)
{
transform.localRotation = targetRotation;
@ -74,6 +85,7 @@ namespace VelNet
{
transform.position = targetPosition;
}
if (teleportAngle != 0 && teleportAngle < angleAtReceiveTime)
{
transform.rotation = targetRotation;
@ -86,25 +98,38 @@ namespace VelNet
if (IsMine) return;
if (useLocalTransform)
{
if (position)
{
transform.localPosition = Vector3.MoveTowards(
transform.localPosition,
targetPosition,
Time.deltaTime * distanceAtReceiveTime * serializationRateHz
);
}
if (rotation)
{
transform.localRotation = Quaternion.RotateTowards(
transform.localRotation,
targetRotation,
Time.deltaTime * angleAtReceiveTime * serializationRateHz
);
}
}
else
{
if (position)
{
transform.position = Vector3.MoveTowards(
transform.position,
targetPosition,
Time.deltaTime * distanceAtReceiveTime * serializationRateHz
);
}
if (rotation)
{
transform.rotation = Quaternion.RotateTowards(
transform.rotation,
targetRotation,
@ -112,5 +137,16 @@ namespace VelNet
);
}
}
if (scale)
{
transform.localScale = Vector3.Lerp(
transform.localScale,
targetScale,
Time.deltaTime * serializationRateHz
);
}
}
}
}

View File

@ -1206,7 +1206,7 @@ namespace VelNet
NetworkObject prefab = instance.prefabs.Find(p => p.name == prefabName);
if (prefab == null)
{
VelNetLogger.Error("Couldn't find a prefab with that name: " + prefabName);
VelNetLogger.Error("Couldn't find a prefab with that name: " + prefabName + "\nMake sure to add the prefab to list of prefabs in VelNetManager");
return null;
}

View File

@ -12,4 +12,4 @@ MonoBehaviour:
m_Script: {fileID: 0}
m_Name:
m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState
lastWriteTicks: -8585433455978485828
lastWriteTicks: -8585432596162049605