Added Angle type. This is a helper struct that represents an angle in degrees, which automatically wraps to [0, 360) range. This type supports automatic interpolation.

This commit is contained in:
Karrar
2025-08-04 11:57:18 +03:00
parent 5f7ebf8797
commit f3b34bee4e
9 changed files with 63 additions and 46 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -155,12 +155,44 @@
</summary> </summary>
<param name="behaviour"></param> <param name="behaviour"></param>
</member> </member>
<member name="M:Netick.Unity.NetworkSandbox.Instantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion)"> <member name="M:Netick.Unity.NetworkSandbox.LocalInstantiate(UnityEngine.GameObject,UnityEngine.Vector3)">
<summary> <summary>
Instantiates a prefab. This must be called instead of <see cref="M:UnityEngine.Object.Instantiate(UnityEngine.Object)"/> or its variations. Instantiates a prefab. This must be called instead of <see cref="M:UnityEngine.Object.Instantiate(UnityEngine.Object)"/>.
<para>Note: this must be called only for non-networked prefabs. If you want to instantiate a network prefab, use <see cref="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)"/> instead.</para> <para>Note: this must be called only for non-networked prefabs. If you want to instantiate a network prefab, use <see cref="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)"/> instead.</para>
</summary> </summary>
</member> </member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayerId)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate``1(``0,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate``1(``0,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayerId)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.GetPlayerObject(Netick.NetworkPlayer)"> <member name="M:Netick.Unity.NetworkSandbox.GetPlayerObject(Netick.NetworkPlayer)">
<summary> <summary>
Gets the the associated NetworkObject (player object) with this player. Gets the the associated NetworkObject (player object) with this player.
@@ -349,36 +381,10 @@
<member name="M:Netick.Unity.NetworkSandbox.GetPrefab(System.String)"> <member name="M:Netick.Unity.NetworkSandbox.GetPrefab(System.String)">
<summary> <summary>
Gets a Network Prefab by name. Gets a Network Prefab by name.
<para>Note: this causes GC.</para>
</summary> </summary>
<param name="name"></param>
<returns>The Network Prefab</returns> <returns>The Network Prefab</returns>
</member> </member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)"> <member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiateInternal(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayerId)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate``1(``0,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer)">
<summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate``1(``0,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayerId)">
<summary> <summary>
<i><b>[Server Only]</b></i> Instantiates a network prefab. <i><b>[Server Only]</b></i> Instantiates a network prefab.
<para>This must only be called on the server, since only the server can instantiate network prefabs.</para> <para>This must only be called on the server, since only the server can instantiate network prefabs.</para>
@@ -512,7 +518,7 @@
</member> </member>
<member name="P:Netick.Unity.NetworkSandbox.InterestManagement"> <member name="P:Netick.Unity.NetworkSandbox.InterestManagement">
<summary> <summary>
Use this to manages interest groups and area of interest (AoI) layers. Use this to manage interest groups and area of interest (AoI) layers.
</summary> </summary>
</member> </member>
<member name="P:Netick.Unity.NetworkSandbox.LocalPlayer"> <member name="P:Netick.Unity.NetworkSandbox.LocalPlayer">
@@ -813,6 +819,16 @@
</summary> </summary>
<param name="position"></param> <param name="position"></param>
</member> </member>
<member name="T:Netick.Unity.Angle">
<summary>
A helper struct that represents an angle in degrees, which automatically wraps to [0, 360) range.
</summary>
</member>
<member name="M:Netick.Unity.Angle.#ctor(System.Single)">
<summary>
Construct from raw degrees (auto-wrapped to [0, 360) internally).
</summary>
</member>
<member name="T:Netick.Unity.SingleInstanceEnforcer"> <member name="T:Netick.Unity.SingleInstanceEnforcer">
<summary> <summary>
Add this component to a GameObject to ensure only a single instance of it will exist at the same time, across all sandboxes. Add this component to a GameObject to ensure only a single instance of it will exist at the same time, across all sandboxes.
@@ -980,7 +996,7 @@
<member name="T:Netick.Unity.NetworkBehaviour"> <member name="T:Netick.Unity.NetworkBehaviour">
<summary> <summary>
Base class for all networked behaviors in Netick. Base class for all networked behaviors in Netick.
Inherit from this class to create custom network-synchronized logic. Inherit from this class to create network-synchronized logic.
Provides access to network state, input, and misc utility methods. Provides access to network state, input, and misc utility methods.
</summary> </summary>
</member> </member>
@@ -1048,6 +1064,7 @@
<summary> <summary>
Returns the source <see cref="T:Netick.NetworkPlayer"/> (<see cref="T:Netick.NetworkPeer"/>/<see cref="T:Netick.ServerConnection"/>) of inputs for this <see cref="T:Netick.Unity.NetworkObject"/>. If the source of inputs is remote (from a client) it returns that <see cref="T:Netick.ServerConnection"/>, while on the Returns the source <see cref="T:Netick.NetworkPlayer"/> (<see cref="T:Netick.NetworkPeer"/>/<see cref="T:Netick.ServerConnection"/>) of inputs for this <see cref="T:Netick.Unity.NetworkObject"/>. If the source of inputs is remote (from a client) it returns that <see cref="T:Netick.ServerConnection"/>, while on the
input source itself it returns the local <see cref="T:Netick.NetworkPlayer"/>. input source itself it returns the local <see cref="T:Netick.NetworkPlayer"/>.
<para>Use <see cref="P:Netick.Unity.NetworkBehaviour.InputSourcePlayerId"/> for the synced-to-everyone player id of the Input Source - because <see cref="P:Netick.Unity.NetworkBehaviour.InputSource"/> is only valid in the client for objects the client itself is the input source of, and it's null for everything else.</para>
</summary> </summary>
</member> </member>
<member name="P:Netick.Unity.NetworkBehaviour.InputSourcePlayerId"> <member name="P:Netick.Unity.NetworkBehaviour.InputSourcePlayerId">

Binary file not shown.

View File

@@ -435,7 +435,7 @@
</member> </member>
<member name="T:Netick.Entity"> <member name="T:Netick.Entity">
<summary> <summary>
Represents an networked entity (object) in the simulation. Represents an networked entity (object) in Netick.
</summary> </summary>
</member> </member>
<member name="T:Netick.NetworkStackSnapshot`1"> <member name="T:Netick.NetworkStackSnapshot`1">
@@ -627,18 +627,6 @@
The NetickEngine class is the core of Netick, managing networking, simulation, interpolation, replication, etc. The NetickEngine class is the core of Netick, managing networking, simulation, interpolation, replication, etc.
</summary> </summary>
</member> </member>
<member name="P:Netick.NetickEngine.ConnectedClients">
<summary>
A list containing all connected clients currently.
<para>Note: if you want the clients + the server, use <see cref="P:Netick.NetickEngine.ConnectedPlayers"/>.</para>
</summary>
</member>
<member name="P:Netick.NetickEngine.ConnectedPlayers">
<summary>
<para>A list containing all connected clients currently, in addition to the server.</para>
<para>Note: if you only want the clients, use <see cref="P:Netick.NetickEngine.ConnectedClients"/>.</para>
</summary>
</member>
<member name="P:Netick.NetickEngine.ServerEndPoint"> <member name="P:Netick.NetickEngine.ServerEndPoint">
<summary> <summary>
<c><b>[Client Only]</b></c> The <see cref="T:System.Net.IPEndPoint"/> of the server you are connected to. Returns null if you are not connected to any server, or if you are the server. <c><b>[Client Only]</b></c> The <see cref="T:System.Net.IPEndPoint"/> of the server you are connected to. Returns null if you are not connected to any server, or if you are the server.
@@ -690,6 +678,18 @@
<c><b>[Client Only]</b></c> The round-trip time (RTT) of the client in seconds. <c><b>[Client Only]</b></c> The round-trip time (RTT) of the client in seconds.
</summary> </summary>
</member> </member>
<member name="P:Netick.NetickEngine.ConnectedClients">
<summary>
A list containing all connected clients currently.
<para>Note: if you want the clients + the server, use <see cref="P:Netick.NetickEngine.ConnectedPlayers"/>.</para>
</summary>
</member>
<member name="P:Netick.NetickEngine.ConnectedPlayers">
<summary>
<para>A list containing all connected clients currently, in addition to the server.</para>
<para>Note: if you only want the clients, use <see cref="P:Netick.NetickEngine.ConnectedClients"/>.</para>
</summary>
</member>
<member name="M:Netick.NetickEngine.DisconnectFromServer"> <member name="M:Netick.NetickEngine.DisconnectFromServer">
<summary> <summary>
<c><b>[Client Only]</b></c> Disconnects this client from the server. <c><b>[Client Only]</b></c> Disconnects this client from the server.
@@ -789,7 +789,7 @@
</summary> </summary>
<param name="entity"></param> <param name="entity"></param>
</member> </member>
<member name="M:Netick.IGameEngine.OnEntityMetaChanged(Netick.NetickEntityMeta,System.Byte*,System.Int32)"> <member name="M:Netick.IGameEngine.OnEntityMetaChanged1(Netick.NetickEntityMeta,System.Byte*,System.Int32)">
<summary> <summary>
This method is called on the client when it receives new entity meta data. This must be used to create/setup network entities on the client. It can be called many times not only when the data has changed. This method is called on the client when it receives new entity meta data. This must be used to create/setup network entities on the client. It can be called many times not only when the data has changed.
<para>Note: user entity meta data can be used for custom user data that might be used in creating entities.</para> <para>Note: user entity meta data can be used for custom user data that might be used in creating entities.</para>

View File

@@ -1,6 +1,6 @@
{ {
"name": "com.karrar.netick", "name": "com.karrar.netick",
"version": "0.14.49", "version": "0.14.50",
"displayName": "Netick", "displayName": "Netick",
"description": "A networking solution for Unity", "description": "A networking solution for Unity",
"unity": "2021.3", "unity": "2021.3",