added 'ts' command to change timescale in debug builds; triplanar mapping for infected area textures

This commit is contained in:
2025-09-15 01:11:41 +02:00
parent 224d55aec6
commit d8ff9c0964
7 changed files with 338 additions and 271 deletions

View File

@@ -93,9 +93,6 @@
{ {
"m_Id": "ab191d78335249ada9055cc5f54ef422" "m_Id": "ab191d78335249ada9055cc5f54ef422"
}, },
{
"m_Id": "adf2d2cc4f65413eab1c01873fe5f516"
},
{ {
"m_Id": "cbebafcd07d04a6cbccc50f0c22ca67a" "m_Id": "cbebafcd07d04a6cbccc50f0c22ca67a"
}, },
@@ -119,6 +116,9 @@
}, },
{ {
"m_Id": "06390cc1dc1243438ff0b8a22ff790bc" "m_Id": "06390cc1dc1243438ff0b8a22ff790bc"
},
{
"m_Id": "0438d4aae01d432ba99fb4874ba07592"
} }
], ],
"m_GroupDatas": [ "m_GroupDatas": [
@@ -128,6 +128,20 @@
], ],
"m_StickyNoteDatas": [], "m_StickyNoteDatas": [],
"m_Edges": [ "m_Edges": [
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "0438d4aae01d432ba99fb4874ba07592"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "a637532a60224fcbace1c7376f2fcab0"
},
"m_SlotId": 1
}
},
{ {
"m_OutputSlot": { "m_OutputSlot": {
"m_Node": { "m_Node": {
@@ -170,20 +184,6 @@
"m_SlotId": 0 "m_SlotId": 0
} }
}, },
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "13cece4467b943179df4b69b22a93ce1"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "adf2d2cc4f65413eab1c01873fe5f516"
},
"m_SlotId": 2
}
},
{ {
"m_OutputSlot": { "m_OutputSlot": {
"m_Node": { "m_Node": {
@@ -431,21 +431,7 @@
}, },
"m_InputSlot": { "m_InputSlot": {
"m_Node": { "m_Node": {
"m_Id": "adf2d2cc4f65413eab1c01873fe5f516" "m_Id": "0438d4aae01d432ba99fb4874ba07592"
},
"m_SlotId": 1
}
},
{
"m_OutputSlot": {
"m_Node": {
"m_Id": "adf2d2cc4f65413eab1c01873fe5f516"
},
"m_SlotId": 0
},
"m_InputSlot": {
"m_Node": {
"m_Id": "a637532a60224fcbace1c7376f2fcab0"
}, },
"m_SlotId": 1 "m_SlotId": 1
} }
@@ -699,17 +685,58 @@
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", "m_Type": "UnityEditor.ShaderGraph.TriplanarNode",
"m_ObjectId": "0472b36f44fa4ba29a848b64fa92c496", "m_ObjectId": "0438d4aae01d432ba99fb4874ba07592",
"m_Id": 5, "m_Group": {
"m_DisplayName": "G", "m_Id": ""
"m_SlotType": 1, },
"m_Hidden": false, "m_Name": "Triplanar",
"m_ShaderOutputName": "G", "m_DrawState": {
"m_StageCapability": 2, "m_Expanded": true,
"m_Value": 0.0, "m_Position": {
"m_DefaultValue": 0.0, "serializedVersion": "2",
"m_Labels": [] "x": -685.0,
"y": -121.0,
"width": 172.0,
"height": 249.0
}
},
"m_Slots": [
{
"m_Id": "5e69f59297aa49e5943cefba5208cc9a"
},
{
"m_Id": "3445d8f7f7ac441999f7260131e44a47"
},
{
"m_Id": "0d888fc141014b62a747b06e53735736"
},
{
"m_Id": "41a7033622984bc7b931f40efddc84bb"
},
{
"m_Id": "3741c41252dc41fc88b5959e96846835"
},
{
"m_Id": "d145148fa98447409f69eb31c00028c7"
},
{
"m_Id": "20cebd56c5ac433ea3d896e899cea18e"
}
],
"synonyms": [
"project"
],
"m_Precision": 0,
"m_PreviewExpanded": false,
"m_DismissedVersion": 0,
"m_PreviewMode": 2,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_TextureType": 0,
"m_InputSpace": 4,
"m_NormalOutputSpace": 3
} }
{ {
@@ -857,6 +884,19 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
"m_ObjectId": "0d888fc141014b62a747b06e53735736",
"m_Id": 2,
"m_DisplayName": "Sampler",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Sampler",
"m_StageCapability": 3,
"m_BareResource": false
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
@@ -882,21 +922,6 @@
"m_Labels": [] "m_Labels": []
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "0e9b1b037dc94fa5910d69167e0d3e7b",
"m_Id": 6,
"m_DisplayName": "B",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "B",
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{ {
"m_SGVersion": 1, "m_SGVersion": 1,
"m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty", "m_Type": "UnityEditor.ShaderGraph.Internal.Vector3ShaderProperty",
@@ -1309,20 +1334,17 @@
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "22203d5813d64639bbde594349a35753", "m_ObjectId": "20cebd56c5ac433ea3d896e899cea18e",
"m_Id": 1, "m_Id": 6,
"m_DisplayName": "Texture", "m_DisplayName": "Blend",
"m_SlotType": 0, "m_SlotType": 0,
"m_Hidden": false, "m_Hidden": false,
"m_ShaderOutputName": "Texture", "m_ShaderOutputName": "Blend",
"m_StageCapability": 3, "m_StageCapability": 3,
"m_BareResource": false, "m_Value": 1.0,
"m_Texture": { "m_DefaultValue": 1.0,
"m_SerializedTexture": "", "m_Labels": []
"m_Guid": ""
},
"m_DefaultType": 0
} }
{ {
@@ -1526,6 +1548,48 @@
"m_Labels": [] "m_Labels": []
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DInputMaterialSlot",
"m_ObjectId": "3445d8f7f7ac441999f7260131e44a47",
"m_Id": 1,
"m_DisplayName": "Texture",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Texture",
"m_StageCapability": 3,
"m_BareResource": false,
"m_Texture": {
"m_SerializedTexture": "",
"m_Guid": ""
},
"m_DefaultType": 0
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot",
"m_ObjectId": "3741c41252dc41fc88b5959e96846835",
"m_Id": 4,
"m_DisplayName": "Normal",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Normal",
"m_StageCapability": 3,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": [],
"m_Space": 4
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
@@ -1550,21 +1614,6 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "39a1d1bdca5a4345b60eb263d13588a5",
"m_Id": 7,
"m_DisplayName": "A",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "A",
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
@@ -1722,9 +1771,9 @@
"m_Expanded": true, "m_Expanded": true,
"m_Position": { "m_Position": {
"serializedVersion": "2", "serializedVersion": "2",
"x": -675.0, "x": -599.0,
"y": -204.0, "y": -190.0,
"width": 105.0, "width": 98.0,
"height": 34.0 "height": 34.0
} }
}, },
@@ -1746,6 +1795,30 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot",
"m_ObjectId": "41a7033622984bc7b931f40efddc84bb",
"m_Id": 3,
"m_DisplayName": "Position",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Position",
"m_StageCapability": 3,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"m_Labels": [],
"m_Space": 4
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot",
@@ -2007,6 +2080,31 @@
"m_Labels": [] "m_Labels": []
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
"m_ObjectId": "5e69f59297aa49e5943cefba5208cc9a",
"m_Id": 0,
"m_DisplayName": "Out",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "Out",
"m_StageCapability": 2,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 0.0
},
"m_Labels": []
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty",
@@ -2207,19 +2305,6 @@
"m_DefaultType": 0 "m_DefaultType": 0
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot",
"m_ObjectId": "6f31d1a585164492996479bc0d4c98b0",
"m_Id": 3,
"m_DisplayName": "Sampler",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Sampler",
"m_StageCapability": 3,
"m_BareResource": false
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
@@ -2285,21 +2370,6 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "7445c2c71cbc4d529f3b164a5734e37b",
"m_Id": 4,
"m_DisplayName": "R",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "R",
"m_StageCapability": 2,
"m_Value": 0.0,
"m_DefaultValue": 0.0,
"m_Labels": []
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot",
@@ -3154,8 +3224,8 @@
"m_Expanded": true, "m_Expanded": true,
"m_Position": { "m_Position": {
"serializedVersion": "2", "serializedVersion": "2",
"x": -985.0, "x": -905.0,
"y": -114.0, "y": -138.0,
"width": 169.0, "width": 169.0,
"height": 34.0 "height": 34.0
} }
@@ -3178,31 +3248,6 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot",
"m_ObjectId": "abdcc23ef32643a786b231dedc0fd777",
"m_Id": 0,
"m_DisplayName": "RGBA",
"m_SlotType": 1,
"m_Hidden": false,
"m_ShaderOutputName": "RGBA",
"m_StageCapability": 2,
"m_Value": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0,
"z": 0.0,
"w": 0.0
},
"m_Labels": []
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
@@ -3218,66 +3263,6 @@
"m_Labels": [] "m_Labels": []
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode",
"m_ObjectId": "adf2d2cc4f65413eab1c01873fe5f516",
"m_Group": {
"m_Id": ""
},
"m_Name": "Sample Texture 2D",
"m_DrawState": {
"m_Expanded": true,
"m_Position": {
"serializedVersion": "2",
"x": -796.0,
"y": -97.0,
"width": 208.0,
"height": 435.0
}
},
"m_Slots": [
{
"m_Id": "abdcc23ef32643a786b231dedc0fd777"
},
{
"m_Id": "7445c2c71cbc4d529f3b164a5734e37b"
},
{
"m_Id": "0472b36f44fa4ba29a848b64fa92c496"
},
{
"m_Id": "0e9b1b037dc94fa5910d69167e0d3e7b"
},
{
"m_Id": "39a1d1bdca5a4345b60eb263d13588a5"
},
{
"m_Id": "22203d5813d64639bbde594349a35753"
},
{
"m_Id": "b3c961e1374546edb74508bf827be7ba"
},
{
"m_Id": "6f31d1a585164492996479bc0d4c98b0"
}
],
"synonyms": [
"tex2d"
],
"m_Precision": 0,
"m_PreviewExpanded": false,
"m_DismissedVersion": 0,
"m_PreviewMode": 0,
"m_CustomColors": {
"m_SerializableColors": []
},
"m_TextureType": 0,
"m_NormalMapSpace": 0,
"m_EnableGlobalMipBias": true,
"m_MipSamplingMode": 0
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
@@ -3413,28 +3398,6 @@
"m_Labels": [] "m_Labels": []
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.UVMaterialSlot",
"m_ObjectId": "b3c961e1374546edb74508bf827be7ba",
"m_Id": 2,
"m_DisplayName": "UV",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "UV",
"m_StageCapability": 3,
"m_Value": {
"x": 0.0,
"y": 0.0
},
"m_DefaultValue": {
"x": 0.0,
"y": 0.0
},
"m_Labels": [],
"m_Channel": 0
}
{ {
"m_SGVersion": 0, "m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot",
@@ -3660,6 +3623,21 @@
} }
} }
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot",
"m_ObjectId": "d145148fa98447409f69eb31c00028c7",
"m_Id": 5,
"m_DisplayName": "Tile",
"m_SlotType": 0,
"m_Hidden": false,
"m_ShaderOutputName": "Tile",
"m_StageCapability": 3,
"m_Value": 1.0,
"m_DefaultValue": 1.0,
"m_Labels": []
}
{ {
"m_SGVersion": 1, "m_SGVersion": 1,
"m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget",

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using RebootKit.Engine.Console; using RebootKit.Engine.Console;
using RebootKit.Engine.Main; using RebootKit.Engine.Main;
using RebootKit.Engine.Simulation; using RebootKit.Engine.Simulation;
@@ -13,7 +14,7 @@ namespace RebootReality.jelycho.Main {
[Header("Player")] [Header("Player")]
[SerializeField] AssetReferenceGameObject m_PlayerActorPrefab; [SerializeField] AssetReferenceGameObject m_PlayerActorPrefab;
protected override void Awake() { protected override void Awake() {
base.Awake(); base.Awake();
@@ -101,5 +102,25 @@ namespace RebootReality.jelycho.Main {
public static void Nq(string[] args) { public static void Nq(string[] args) {
Application.Quit(); Application.Quit();
} }
#if RR_DEBUG
[RCCMD("ts", "Sets game timescale")]
public static void Timescale(string[] args) {
if (args.Length != 2) {
RR.WriteToConsole($"usage: {args[0]} <time_scale>");
return;
}
if (float.TryParse(args[1],
NumberStyles.Float,
CultureInfo.InvariantCulture,
out float ts)) {
Time.timeScale = ts;
RR.WriteToConsole($"set timescale to: {ts}");
} else {
RR.WriteToConsole($"got invalid value: {args[1]}");
}
}
#endif
} }
} }

View File

@@ -61,7 +61,7 @@ namespace RebootReality.jelycho.Player {
SetBobbing(0.0f); SetBobbing(0.0f);
} }
public void Tick() { public void Tick(float deltaTime) {
Camera.Lens.FieldOfView = s_CameraFOV.FloatValue; Camera.Lens.FieldOfView = s_CameraFOV.FloatValue;
// Camera.transform.localRotation = Quaternion.Euler(Pitch, 0f, 0f); // Camera.transform.localRotation = Quaternion.Euler(Pitch, 0f, 0f);

View File

@@ -12,7 +12,7 @@ using UnityEngine;
using Logger = RebootKit.Engine.Foundation.Logger; using Logger = RebootKit.Engine.Foundation.Logger;
namespace RebootReality.jelycho.Player { namespace RebootReality.jelycho.Player {
public class PlayerActor : Actor, IKillable { public class PlayerActor : Actor, IKillable {
static readonly Logger s_Logger = new Logger(nameof(PlayerActor)); static readonly Logger s_Logger = new Logger(nameof(PlayerActor));
[SerializeField] PlayerAnimator m_PlayerAnimator; [SerializeField] PlayerAnimator m_PlayerAnimator;
@@ -81,7 +81,7 @@ namespace RebootReality.jelycho.Player {
ItemActor m_EquippedItem; ItemActor m_EquippedItem;
[SerializeField] float m_StartChargeDelay = 0.15f; [SerializeField] float m_StartChargeDelay = 0.15f;
bool m_IsCharging; bool m_IsCharging;
float m_ChargeTimer; float m_ChargeTimer;
@@ -94,7 +94,7 @@ namespace RebootReality.jelycho.Player {
} }
QuickAttackState m_QuickAttackState; QuickAttackState m_QuickAttackState;
int m_QuickAttackComboCounter; int m_QuickAttackComboCounter;
float m_QuickAttackComboTimer; float m_QuickAttackComboTimer;
@@ -135,7 +135,7 @@ namespace RebootReality.jelycho.Player {
void OnEnable() { void OnEnable() {
Inventory.OnItemPickedUp += OnItemPickedUp; Inventory.OnItemPickedUp += OnItemPickedUp;
Inventory.OnItemDropped += OnItemDropped; Inventory.OnItemDropped += OnItemDropped;
m_PlayerAnimator.onQuickAttackFinished.AddListener(OnQuickAttackFinishedAnimation); m_PlayerAnimator.onQuickAttackFinished.AddListener(OnQuickAttackFinishedAnimation);
m_PlayerAnimator.onChargeReady.AddListener(OnChargeReadyAnimation); m_PlayerAnimator.onChargeReady.AddListener(OnChargeReadyAnimation);
} }
@@ -227,14 +227,14 @@ namespace RebootReality.jelycho.Player {
s_Logger.Error("Cannot begin primary action when not set up as owner."); s_Logger.Error("Cannot begin primary action when not set up as owner.");
return; return;
} }
if (m_EquippedItem == null) { if (m_EquippedItem == null) {
return; return;
} }
ItemConfig itemConfig = m_EquippedItem.Config; ItemConfig itemConfig = m_EquippedItem.Config;
if (!m_IsCharging && itemConfig.isChargeable && m_EquippedItem.Config.chargeAction != null ) { if (!m_IsCharging && itemConfig.isChargeable && m_EquippedItem.Config.chargeAction != null) {
m_ChargeTimer += Time.deltaTime; m_ChargeTimer += Time.deltaTime;
if (m_ChargeTimer >= m_StartChargeDelay) { if (m_ChargeTimer >= m_StartChargeDelay) {
@@ -295,7 +295,7 @@ namespace RebootReality.jelycho.Player {
m_QuickAttackComboCounter = 0; m_QuickAttackComboCounter = 0;
PlayQuickAttackAnimation(m_QuickAttackComboCounter); PlayQuickAttackAnimation(m_QuickAttackComboCounter);
m_QuickAttackState = QuickAttackState.PlayingAnimation; m_QuickAttackState = QuickAttackState.PlayingAnimation;
if (m_EquippedItem.Config.quickAttackAction != null) { if (m_EquippedItem.Config.quickAttackAction != null) {
m_EquippedItem.Config.quickAttackAction.Attack(this, m_EquippedItem); m_EquippedItem.Config.quickAttackAction.Attack(this, m_EquippedItem);
} }
@@ -367,7 +367,7 @@ namespace RebootReality.jelycho.Player {
m_TargetInteractable.Value.Interact(); m_TargetInteractable.Value.Interact();
} }
} }
// //
// @MARK: Hands animations // @MARK: Hands animations
// //
@@ -401,10 +401,10 @@ namespace RebootReality.jelycho.Player {
base.OnClientTick(deltaTime); base.OnClientTick(deltaTime);
if (m_IsSetupAsOwner) { if (m_IsSetupAsOwner) {
TickCamera(); TickCamera(deltaTime);
UpdateAnimator(m_Locomotion.Velocity); UpdateAnimator(m_Locomotion.Velocity);
SenseInteractable(); SenseInteractable();
if (m_QuickAttackComboTimer > 0.0f) { if (m_QuickAttackComboTimer > 0.0f) {
m_QuickAttackComboTimer -= deltaTime; m_QuickAttackComboTimer -= deltaTime;
@@ -418,7 +418,7 @@ namespace RebootReality.jelycho.Player {
if (m_SyncRemoteStateTimer <= 0.0f) { if (m_SyncRemoteStateTimer <= 0.0f) {
m_SyncRemoteStateTimer = 1.0f / NetworkSystem.TickRate.IndexValue; m_SyncRemoteStateTimer = 1.0f / NetworkSystem.TickRate.IndexValue;
RemotePlayerActorState remoteState = new RemotePlayerActorState { var remoteState = new RemotePlayerActorState {
Position = transform.position, Position = transform.position,
Velocity = m_Locomotion.Velocity, Velocity = m_Locomotion.Velocity,
LookPitch = m_Camera.Pitch, LookPitch = m_Camera.Pitch,
@@ -531,15 +531,14 @@ namespace RebootReality.jelycho.Player {
switch ((PlayerActorEvents) actorEvent.EventID) { switch ((PlayerActorEvents) actorEvent.EventID) {
case PlayerActorEvents.UpdatedRemoteState: { case PlayerActorEvents.UpdatedRemoteState: {
RemotePlayerActorState remoteState = new RemotePlayerActorState(); var remoteState = new RemotePlayerActorState();
DataSerializationUtils.Deserialize(actorEvent.Data, ref remoteState); DataSerializationUtils.Deserialize(actorEvent.Data, ref remoteState);
m_RemoteState = remoteState; m_RemoteState = remoteState;
break; break;
} }
case PlayerActorEvents.PrimaryEquippedItemChanged: { case PlayerActorEvents.PrimaryEquippedItemChanged: {
PlayerActorPrimaryEquippedItemChangedEvent itemChangedEvent = var itemChangedEvent = new PlayerActorPrimaryEquippedItemChangedEvent();
new PlayerActorPrimaryEquippedItemChangedEvent();
DataSerializationUtils.Deserialize(actorEvent.Data, ref itemChangedEvent); DataSerializationUtils.Deserialize(actorEvent.Data, ref itemChangedEvent);
if (itemChangedEvent.ItemActorID == 0) { if (itemChangedEvent.ItemActorID == 0) {
@@ -563,8 +562,9 @@ namespace RebootReality.jelycho.Player {
break; break;
} }
PlayerUpdateInventoryEvent updateInventoryEvent = new PlayerUpdateInventoryEvent(); var updateInventoryEvent = new PlayerUpdateInventoryEvent();
DataSerializationUtils.Deserialize(actorEvent.Data, ref updateInventoryEvent); DataSerializationUtils.Deserialize(actorEvent.Data,
ref updateInventoryEvent);
for (int i = 0; i < Inventory.SlotsCount; i++) { for (int i = 0; i < Inventory.SlotsCount; i++) {
ushort actorID = updateInventoryEvent.SlotsActorIDs[i]; ushort actorID = updateInventoryEvent.SlotsActorIDs[i];
@@ -588,7 +588,7 @@ namespace RebootReality.jelycho.Player {
break; break;
} }
PlayerPlayHandsAnimationEvent handsAnimationEvent = new PlayerPlayHandsAnimationEvent(); var handsAnimationEvent = new PlayerPlayHandsAnimationEvent();
DataSerializationUtils.Deserialize(actorEvent.Data, ref handsAnimationEvent); DataSerializationUtils.Deserialize(actorEvent.Data, ref handsAnimationEvent);
// if (m_Animator.HasState(m_HandsLayerIndex, handsAnimationEvent.AnimationHash)) { // if (m_Animator.HasState(m_HandsLayerIndex, handsAnimationEvent.AnimationHash)) {
@@ -620,9 +620,9 @@ namespace RebootReality.jelycho.Player {
m_IsSetupAsOwner = true; m_IsSetupAsOwner = true;
} }
void TickCamera() { void TickCamera(float deltaTime) {
// Camera Stuff // Camera Stuff
m_Camera.Tick(); m_Camera.Tick(deltaTime);
if (m_Locomotion.IsGrounded && if (m_Locomotion.IsGrounded &&
m_Locomotion.SpeedXZ >= m_Locomotion.runSpeed * m_EnableCameraBobbingPercentThreshold) { m_Locomotion.SpeedXZ >= m_Locomotion.runSpeed * m_EnableCameraBobbingPercentThreshold) {
@@ -637,10 +637,10 @@ namespace RebootReality.jelycho.Player {
m_CurrentCameraBobbing = Mathf.MoveTowards(m_CurrentCameraBobbing, m_CurrentCameraBobbing = Mathf.MoveTowards(m_CurrentCameraBobbing,
m_TargetCameraBobbing, m_TargetCameraBobbing,
m_CameraBobbingTransitionSpeed * Time.deltaTime); m_CameraBobbingTransitionSpeed * deltaTime);
m_Camera.SetBobbing(m_CurrentCameraBobbing); m_Camera.SetBobbing(m_CurrentCameraBobbing);
m_CameraSpring.UpdateSpring(Time.deltaTime, m_CameraSpring.UpdateSpring(deltaTime,
m_CharacterForwardTransform.up, m_CharacterForwardTransform.up,
m_CharacterForwardTransform.right, m_CharacterForwardTransform.right,
m_CharacterForwardTransform.forward); m_CharacterForwardTransform.forward);
@@ -655,10 +655,11 @@ namespace RebootReality.jelycho.Player {
public void DealDamage(IKillable target) { public void DealDamage(IKillable target) {
if (target is Actor actor) { if (target is Actor actor) {
PlayerActorDealDamageCommand dealDamageCommand = new PlayerActorDealDamageCommand { var dealDamageCommand = new PlayerActorDealDamageCommand {
TargetActorID = actor.ActorID TargetActorID = actor.ActorID
}; };
SendActorCommand((byte)PlayerActorCommands.DealDamage, ref dealDamageCommand); SendActorCommand((byte) PlayerActorCommands.DealDamage,
ref dealDamageCommand);
} else { } else {
s_Logger.Error($"Player can only deal damage to other actors!"); s_Logger.Error($"Player can only deal damage to other actors!");
} }
@@ -706,8 +707,9 @@ namespace RebootReality.jelycho.Player {
return; return;
} }
PlayerUpdateInventoryEvent updateInventoryEvent = new PlayerUpdateInventoryEvent(); var updateInventoryEvent = new PlayerUpdateInventoryEvent {
updateInventoryEvent.SlotsActorIDs = new NativeArray<ushort>(Inventory.SlotsCount, Allocator.Temp); SlotsActorIDs = new NativeArray<ushort>(Inventory.SlotsCount, Allocator.Temp)
};
for (int i = 0; i < Inventory.SlotsCount; i++) { for (int i = 0; i < Inventory.SlotsCount; i++) {
updateInventoryEvent.SlotsActorIDs[i] = Inventory.GetItem(i)?.ActorID ?? (ushort) 0; updateInventoryEvent.SlotsActorIDs[i] = Inventory.GetItem(i)?.ActorID ?? (ushort) 0;
} }
@@ -763,10 +765,9 @@ namespace RebootReality.jelycho.Player {
m_EquippedItem.MountTo(this, m_EquippedItem.Config.characterEquippedMountSlotName); m_EquippedItem.MountTo(this, m_EquippedItem.Config.characterEquippedMountSlotName);
} }
PlayerActorPrimaryEquippedItemChangedEvent itemChangedEvent = var itemChangedEvent = new PlayerActorPrimaryEquippedItemChangedEvent {
new PlayerActorPrimaryEquippedItemChangedEvent { ItemActorID = m_EquippedItem != null ? m_EquippedItem.ActorID : (ushort) 0
ItemActorID = m_EquippedItem != null ? m_EquippedItem.ActorID : (ushort) 0 };
};
SendActorEvent((byte) PlayerActorEvents.PrimaryEquippedItemChanged, ref itemChangedEvent); SendActorEvent((byte) PlayerActorEvents.PrimaryEquippedItemChanged, ref itemChangedEvent);
if (m_EquippedItem != null) { if (m_EquippedItem != null) {
@@ -779,7 +780,7 @@ namespace RebootReality.jelycho.Player {
SetHandsIdleAnimation(); SetHandsIdleAnimation();
} }
void SpawnAdditionalEquippedItemActors() { void SpawnAdditionalEquippedItemActors() {
DestroyAdditionalEquippedItemActors(); DestroyAdditionalEquippedItemActors();
@@ -861,7 +862,9 @@ namespace RebootReality.jelycho.Player {
// @MARK: Sensors // @MARK: Sensors
// //
public bool TryGetBeaconPosition(out Vector3 position) { public bool TryGetBeaconPosition(out Vector3 position) {
Ray ray = new Ray(m_Camera.Camera.transform.position, m_Camera.Camera.transform.forward); var ray = new Ray(m_Camera.Camera.transform.position,
m_Camera.Camera.transform.forward);
if (Physics.Raycast(ray, out RaycastHit hit, m_BeaconPlacementMaxDistance, m_BeaconPlacementLayerMask) && if (Physics.Raycast(ray, out RaycastHit hit, m_BeaconPlacementMaxDistance, m_BeaconPlacementLayerMask) &&
Vector3.Dot(hit.normal, Vector3.up) >= m_NormalDotUpThreshold) { Vector3.Dot(hit.normal, Vector3.up) >= m_NormalDotUpThreshold) {
position = hit.point; position = hit.point;
@@ -888,7 +891,7 @@ namespace RebootReality.jelycho.Player {
return; return;
} }
PlayerActorPickupItemCommand command = new PlayerActorPickupItemCommand { var command = new PlayerActorPickupItemCommand {
ItemActorID = actor.ActorID ItemActorID = actor.ActorID
}; };
SendActorCommand((byte) PlayerActorCommands.PickupItem, ref command); SendActorCommand((byte) PlayerActorCommands.PickupItem, ref command);
@@ -906,8 +909,9 @@ namespace RebootReality.jelycho.Player {
SelectedInventorySlot.Value = Inventory.SlotsCount - 1; SelectedInventorySlot.Value = Inventory.SlotsCount - 1;
} }
PlayerActorSelectItemSlotCommand command = new PlayerActorSelectItemSlotCommand(); var command = new PlayerActorSelectItemSlotCommand {
command.SlotIndex = SelectedInventorySlot.Value; SlotIndex = SelectedInventorySlot.Value
};
SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command); SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command);
} }
@@ -923,8 +927,9 @@ namespace RebootReality.jelycho.Player {
SelectedInventorySlot.Value = 0; SelectedInventorySlot.Value = 0;
} }
PlayerActorSelectItemSlotCommand command = new PlayerActorSelectItemSlotCommand(); var command = new PlayerActorSelectItemSlotCommand {
command.SlotIndex = SelectedInventorySlot.Value; SlotIndex = SelectedInventorySlot.Value
};
SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command); SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command);
} }
@@ -941,8 +946,9 @@ namespace RebootReality.jelycho.Player {
SelectedInventorySlot.Value = slotIndex; SelectedInventorySlot.Value = slotIndex;
PlayerActorSelectItemSlotCommand command = new PlayerActorSelectItemSlotCommand(); var command = new PlayerActorSelectItemSlotCommand {
command.SlotIndex = SelectedInventorySlot.Value; SlotIndex = SelectedInventorySlot.Value
};
SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command); SendActorCommand((byte) PlayerActorCommands.SelectItemSlot, ref command);
} }
@@ -963,11 +969,11 @@ namespace RebootReality.jelycho.Player {
m_CharacterTurnVelocitySmooth = 0.0f; m_CharacterTurnVelocitySmooth = 0.0f;
} }
PlayerLocomotionAnimatorParams locomotionParams = new PlayerLocomotionAnimatorParams { var locomotionParams = new PlayerLocomotionAnimatorParams {
IsGrounded = m_Locomotion.IsGrounded, IsGrounded = m_Locomotion.IsGrounded,
VelocityForwardNormalized = forwardNormalized, VelocityForwardNormalized = forwardNormalized,
VelocityRightNormalized = rightNormalized, VelocityRightNormalized = rightNormalized,
TurnVelocity = m_CharacterTurnVelocitySmooth TurnVelocity = m_CharacterTurnVelocitySmooth
}; };
m_PlayerAnimator.SetLocomotionParams(locomotionParams); m_PlayerAnimator.SetLocomotionParams(locomotionParams);
@@ -1093,7 +1099,7 @@ namespace RebootReality.jelycho.Player {
return sizeof(int); // SlotIndex return sizeof(int); // SlotIndex
} }
} }
struct PlayerActorRequestHandsAnimationCommand : IActorData { struct PlayerActorRequestHandsAnimationCommand : IActorData {
public int AnimationHash; public int AnimationHash;
@@ -1116,7 +1122,7 @@ namespace RebootReality.jelycho.Player {
public int GetMaxBytes() { public int GetMaxBytes() {
return sizeof(ushort); return sizeof(ushort);
} }
public void Serialize(NetworkBufferWriter writer) { public void Serialize(NetworkBufferWriter writer) {
writer.Write(TargetActorID); writer.Write(TargetActorID);
} }
@@ -1174,7 +1180,7 @@ namespace RebootReality.jelycho.Player {
return sizeof(byte) + SlotsActorIDs.Length * sizeof(ushort); return sizeof(byte) + SlotsActorIDs.Length * sizeof(ushort);
} }
} }
struct PlayerPlayHandsAnimationEvent : IActorData { struct PlayerPlayHandsAnimationEvent : IActorData {
public int AnimationHash; public int AnimationHash;

View File

@@ -223,7 +223,7 @@ ParticleSystem:
serializedVersion: 2 serializedVersion: 2
minMaxState: 0 minMaxState: 0
minColor: {r: 1, g: 1, b: 1, a: 1} minColor: {r: 1, g: 1, b: 1, a: 1}
maxColor: {r: 0.37375546, g: 0, b: 1, a: 0.4745098} maxColor: {r: 0.9716981, g: 0.9716981, b: 0.9716981, a: 0.015686275}
maxGradient: maxGradient:
serializedVersion: 2 serializedVersion: 2
key0: {r: 1, g: 1, b: 1, a: 1} key0: {r: 1, g: 1, b: 1, a: 1}

View File

@@ -3922,6 +3922,67 @@ MeshFilter:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1280003783} m_GameObject: {fileID: 1280003783}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &1305276974
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalPosition.x
value: -7.4638987
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalPosition.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalPosition.z
value: -15.623456
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 332120896058738243, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1184373872144747558, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: InitialModule.startColor.maxColor.a
value: 0.54509807
objectReference: {fileID: 0}
- target: {fileID: 7606346773003315006, guid: 969a80457005adc49b0840e642041521, type: 3}
propertyPath: m_Name
value: ps_infected_area
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 969a80457005adc49b0840e642041521, type: 3}
--- !u!1 &1317656636 --- !u!1 &1317656636
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -6480,3 +6541,4 @@ SceneRoots:
- {fileID: 1495763905} - {fileID: 1495763905}
- {fileID: 1196992586} - {fileID: 1196992586}
- {fileID: 1388994043} - {fileID: 1388994043}
- {fileID: 1305276974}

View File

@@ -7,7 +7,7 @@ AvatarMask:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: avatar_mask_player_fpp m_Name: avatar_mask_player_fpp
m_Mask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000 m_Mask: 01000000010000000000000001000000010000000100000001000000010000000100000001000000010000000100000001000000
m_Elements: m_Elements:
- m_Path: - m_Path:
m_Weight: 1 m_Weight: 1