From 6c40f7bb6fb09f95c79e605715aac7c0487b10dd Mon Sep 17 00:00:00 2001 From: teascade Date: Thu, 20 Aug 2020 21:55:11 +0300 Subject: [PATCH] Make weapon switching work --- Assets/Items/Raygun.prefab | 2 +- Assets/Items/Teevee.prefab | 51 +++++++++++++++++++++------ Assets/Items/Teevee/Screen.png.meta | 2 +- Assets/Scripts/Players/LocalPlayer.cs | 32 +++++++++++------ Assets/Scripts/Players/Player.cs | 4 +++ 5 files changed, 68 insertions(+), 23 deletions(-) diff --git a/Assets/Items/Raygun.prefab b/Assets/Items/Raygun.prefab index e264dda..57872ef 100644 --- a/Assets/Items/Raygun.prefab +++ b/Assets/Items/Raygun.prefab @@ -381,7 +381,7 @@ Animator: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6228136265624521654} - m_Enabled: 1 + m_Enabled: 0 m_Avatar: {fileID: 0} m_Controller: {fileID: 9100000, guid: 8468d9a1f10314a4c998349493611489, type: 2} m_CullingMode: 0 diff --git a/Assets/Items/Teevee.prefab b/Assets/Items/Teevee.prefab index 7d813d5..d94a786 100644 --- a/Assets/Items/Teevee.prefab +++ b/Assets/Items/Teevee.prefab @@ -157,6 +157,36 @@ Transform: m_Father: {fileID: 4677107243738498813} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4990576539229878572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1602672112052966102} + m_Layer: 0 + m_Name: ScopeCamera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1602672112052966102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4990576539229878572} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 50, y: 50, z: 50} + m_Children: [] + m_Father: {fileID: 4677107243738498813} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &5022353220472231776 GameObject: m_ObjectHideFlags: 0 @@ -187,6 +217,7 @@ Transform: m_Children: - {fileID: 1605033999665909937} - {fileID: 264070833573311472} + - {fileID: 1602672112052966102} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -207,7 +238,7 @@ MonoBehaviour: Handle: {fileID: 1605033999665909937} LaserPrefab: {fileID: 8009551885746485900, guid: 5c99da0361d098646b319a35fcc80095, type: 3} RaygunAnimator: {fileID: 823779526010534736} - ScopeCamera: {fileID: 0} + ScopeCamera: {fileID: 1602672112052966102} BulletSourcePoint: {fileID: 9048980524933835922} BulletHitLayer: serializedVersion: 2 @@ -309,31 +340,31 @@ PrefabInstance: m_Modifications: - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 0.049091168 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalPosition.y - value: 0 + value: 0.063 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalPosition.z - value: 0 + value: 0.17629232 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalRotation.x - value: -0.5 + value: -0.5604943 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalRotation.y - value: -0.5 + value: -0.3032949 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalRotation.z - value: -0.5 + value: -0.43109903 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalRotation.w - value: 0.5 + value: 0.63875824 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_RootOrder @@ -341,11 +372,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalEulerAnglesHint.x - value: -90 + value: -77.834 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalEulerAnglesHint.y - value: 0 + value: 27.035 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 6a5fc221f07cc47409a6118dbbb9258a, type: 3} propertyPath: m_LocalEulerAnglesHint.z diff --git a/Assets/Items/Teevee/Screen.png.meta b/Assets/Items/Teevee/Screen.png.meta index e70458a..c2a5ae5 100644 --- a/Assets/Items/Teevee/Screen.png.meta +++ b/Assets/Items/Teevee/Screen.png.meta @@ -32,7 +32,7 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: -1 + filterMode: 0 aniso: -1 mipBias: -100 wrapU: 1 diff --git a/Assets/Scripts/Players/LocalPlayer.cs b/Assets/Scripts/Players/LocalPlayer.cs index 4f410b8..e635471 100644 --- a/Assets/Scripts/Players/LocalPlayer.cs +++ b/Assets/Scripts/Players/LocalPlayer.cs @@ -1,7 +1,7 @@ -using UnityEngine; +using System; +using UnityEngine; using UnityEngine.InputSystem; using NeonTea.Quakeball.Interface; -using NeonTea.Quakeball.Networking; using NeonTea.Quakeball.Networking.Packets; namespace NeonTea.Quakeball.Players { @@ -20,6 +20,8 @@ namespace NeonTea.Quakeball.Players { private InputAction ShootAction; private InputAction SwitchUpAction; + private InputAction[] WeaponSwitchActions = new InputAction[9]; + private float PreviousPlayerUpdate = -1; private float PreviousPlayerFullSync = -1; private bool WantsToJump = false; @@ -53,15 +55,17 @@ namespace NeonTea.Quakeball.Players { Networking.Net.Singleton.Instance.LocalPlayerAction(PlayerAction.Shoot, shootData); } Player.Shoot(); - };/* - ShootAction = new InputAction("Shoot", binding: "/leftButton"); - ShootAction.performed += _ => { - if (Networking.Net.Singleton.Instance != null) { - ShootData shootData = new ShootData(Player.Pitch, Player.Yaw, Player.CreateSyncPacket()); - Networking.Net.Singleton.Instance.LocalPlayerAction(PlayerAction.Shoot, shootData); - } - Player.Shoot(); - };*/ + }; + Action CreateLambda(int number) { + return (context) => { + Player.SwitchItem(number); + Player.CurrentItem.Animator.enabled = true; + }; + } + for (int i = 0; i < 9; i++) { + WeaponSwitchActions[i] = new InputAction($"Switch to weapon {i + 1}", binding: $"/{i + 1}"); + WeaponSwitchActions[i].performed += CreateLambda(i); + } Terminal.Singleton.RegisterCommand("tp", args => { if (args.Length != 3) { @@ -79,6 +83,9 @@ namespace NeonTea.Quakeball.Players { LookAction.Disable(); MoveAction.Disable(); ShootAction.Disable(); + foreach (InputAction action in WeaponSwitchActions) { + action.Disable(); + } Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } else { @@ -87,6 +94,9 @@ namespace NeonTea.Quakeball.Players { LookAction.Enable(); MoveAction.Enable(); ShootAction.Enable(); + foreach (InputAction action in WeaponSwitchActions) { + action.Enable(); + } Cursor.visible = false; Cursor.lockState = CursorLockMode.Locked; } diff --git a/Assets/Scripts/Players/Player.cs b/Assets/Scripts/Players/Player.cs index 5bfdbb2..0270e23 100644 --- a/Assets/Scripts/Players/Player.cs +++ b/Assets/Scripts/Players/Player.cs @@ -224,9 +224,13 @@ namespace NeonTea.Quakeball.Players { CurrentItem.SwitchedOut(); } GameObject obj = GameObject.Instantiate(PossibleItems[index]); + Vector3 localPos = obj.transform.localPosition; + Quaternion localRot = obj.transform.localRotation; obj.transform.parent = ItemRoot.transform; obj.transform.localPosition = localPos; + obj.transform.localRotation = localRot; + CurrentItem = obj.GetComponent(); CurrentItem.Holder = this; CurrentItem.Switched();