Add shooty
This commit is contained in:
		
							parent
							
								
									48f02df34c
								
							
						
					
					
						commit
						7d60350142
					
				| @ -44,7 +44,6 @@ GameObject: | |||||||
|   m_Component: |   m_Component: | ||||||
|   - component: {fileID: 1865991757674780053} |   - component: {fileID: 1865991757674780053} | ||||||
|   - component: {fileID: 2075495528035690810} |   - component: {fileID: 2075495528035690810} | ||||||
|   - component: {fileID: 6867077562160249920} |  | ||||||
|   m_Layer: 0 |   m_Layer: 0 | ||||||
|   m_Name: GunRoot |   m_Name: GunRoot | ||||||
|   m_TagString: Untagged |   m_TagString: Untagged | ||||||
| @ -64,8 +63,8 @@ Transform: | |||||||
|   m_LocalScale: {x: 1, y: 1, z: 1} |   m_LocalScale: {x: 1, y: 1, z: 1} | ||||||
|   m_Children: |   m_Children: | ||||||
|   - {fileID: 8204020546429986303} |   - {fileID: 8204020546429986303} | ||||||
|   m_Father: {fileID: 7391558912382528812} |   m_Father: {fileID: 3811958100146932696} | ||||||
|   m_RootOrder: 2 |   m_RootOrder: 0 | ||||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||||
| --- !u!95 &2075495528035690810 | --- !u!95 &2075495528035690810 | ||||||
| Animator: | Animator: | ||||||
| @ -86,19 +85,6 @@ Animator: | |||||||
|   m_HasTransformHierarchy: 1 |   m_HasTransformHierarchy: 1 | ||||||
|   m_AllowConstantClipSamplingOptimization: 1 |   m_AllowConstantClipSamplingOptimization: 1 | ||||||
|   m_KeepAnimatorControllerStateOnDisable: 0 |   m_KeepAnimatorControllerStateOnDisable: 0 | ||||||
| --- !u!114 &6867077562160249920 |  | ||||||
| MonoBehaviour: |  | ||||||
|   m_ObjectHideFlags: 0 |  | ||||||
|   m_CorrespondingSourceObject: {fileID: 0} |  | ||||||
|   m_PrefabInstance: {fileID: 0} |  | ||||||
|   m_PrefabAsset: {fileID: 0} |  | ||||||
|   m_GameObject: {fileID: 2071588178488902664} |  | ||||||
|   m_Enabled: 1 |  | ||||||
|   m_EditorHideFlags: 0 |  | ||||||
|   m_Script: {fileID: 11500000, guid: c0e8b530a9e9275419a275e5557a0420, type: 3} |  | ||||||
|   m_Name:  |  | ||||||
|   m_EditorClassIdentifier:  |  | ||||||
|   Speed: 10 |  | ||||||
| --- !u!1 &2093411826205058927 | --- !u!1 &2093411826205058927 | ||||||
| GameObject: | GameObject: | ||||||
|   m_ObjectHideFlags: 0 |   m_ObjectHideFlags: 0 | ||||||
| @ -194,6 +180,51 @@ BoxCollider: | |||||||
|   serializedVersion: 2 |   serializedVersion: 2 | ||||||
|   m_Size: {x: 1, y: 1, z: 1} |   m_Size: {x: 1, y: 1, z: 1} | ||||||
|   m_Center: {x: 0, y: 0, z: 0} |   m_Center: {x: 0, y: 0, z: 0} | ||||||
|  | --- !u!1 &2970260390919355544 | ||||||
|  | GameObject: | ||||||
|  |   m_ObjectHideFlags: 0 | ||||||
|  |   m_CorrespondingSourceObject: {fileID: 0} | ||||||
|  |   m_PrefabInstance: {fileID: 0} | ||||||
|  |   m_PrefabAsset: {fileID: 0} | ||||||
|  |   serializedVersion: 6 | ||||||
|  |   m_Component: | ||||||
|  |   - component: {fileID: 3811958100146932696} | ||||||
|  |   - component: {fileID: 4000144568201082722} | ||||||
|  |   m_Layer: 0 | ||||||
|  |   m_Name: GunRootAboveAnimator | ||||||
|  |   m_TagString: Untagged | ||||||
|  |   m_Icon: {fileID: 0} | ||||||
|  |   m_NavMeshLayer: 0 | ||||||
|  |   m_StaticEditorFlags: 0 | ||||||
|  |   m_IsActive: 1 | ||||||
|  | --- !u!4 &3811958100146932696 | ||||||
|  | Transform: | ||||||
|  |   m_ObjectHideFlags: 0 | ||||||
|  |   m_CorrespondingSourceObject: {fileID: 0} | ||||||
|  |   m_PrefabInstance: {fileID: 0} | ||||||
|  |   m_PrefabAsset: {fileID: 0} | ||||||
|  |   m_GameObject: {fileID: 2970260390919355544} | ||||||
|  |   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_Children: | ||||||
|  |   - {fileID: 1865991757674780053} | ||||||
|  |   m_Father: {fileID: 7391558912382528812} | ||||||
|  |   m_RootOrder: 2 | ||||||
|  |   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||||
|  | --- !u!114 &4000144568201082722 | ||||||
|  | MonoBehaviour: | ||||||
|  |   m_ObjectHideFlags: 0 | ||||||
|  |   m_CorrespondingSourceObject: {fileID: 0} | ||||||
|  |   m_PrefabInstance: {fileID: 0} | ||||||
|  |   m_PrefabAsset: {fileID: 0} | ||||||
|  |   m_GameObject: {fileID: 2970260390919355544} | ||||||
|  |   m_Enabled: 1 | ||||||
|  |   m_EditorHideFlags: 0 | ||||||
|  |   m_Script: {fileID: 11500000, guid: c0e8b530a9e9275419a275e5557a0420, type: 3} | ||||||
|  |   m_Name:  | ||||||
|  |   m_EditorClassIdentifier:  | ||||||
|  |   Speed: 10 | ||||||
| --- !u!1 &7391558911651855222 | --- !u!1 &7391558911651855222 | ||||||
| GameObject: | GameObject: | ||||||
|   m_ObjectHideFlags: 0 |   m_ObjectHideFlags: 0 | ||||||
| @ -445,7 +476,7 @@ Transform: | |||||||
|   m_Children: |   m_Children: | ||||||
|   - {fileID: 7391558911651855223} |   - {fileID: 7391558911651855223} | ||||||
|   - {fileID: 7391558913556166742} |   - {fileID: 7391558913556166742} | ||||||
|   - {fileID: 1865991757674780053} |   - {fileID: 3811958100146932696} | ||||||
|   m_Father: {fileID: 7391558912167870012} |   m_Father: {fileID: 7391558912167870012} | ||||||
|   m_RootOrder: 0 |   m_RootOrder: 0 | ||||||
|   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} | ||||||
| @ -576,7 +607,7 @@ MonoBehaviour: | |||||||
|   m_Name:  |   m_Name:  | ||||||
|   m_EditorClassIdentifier:  |   m_EditorClassIdentifier:  | ||||||
|   CoyoteTime: 0.2 |   CoyoteTime: 0.2 | ||||||
|   CoyoteTimePingBias: 0 |   PingBias: 0 | ||||||
|   UpdateFrequency: 30 |   UpdateFrequency: 30 | ||||||
|   MoveStyles: |   MoveStyles: | ||||||
|   - {fileID: 11400000, guid: 550df8ac62d76a64a8c621ea6b32398f, type: 2} |   - {fileID: 11400000, guid: 550df8ac62d76a64a8c621ea6b32398f, type: 2} | ||||||
| @ -588,7 +619,7 @@ MonoBehaviour: | |||||||
|   Lerpables: |   Lerpables: | ||||||
|   - {fileID: 2566772175078312154} |   - {fileID: 2566772175078312154} | ||||||
|   - {fileID: 1798037817325599949} |   - {fileID: 1798037817325599949} | ||||||
|   - {fileID: 6867077562160249920} |   - {fileID: 4000144568201082722} | ||||||
|   Pitch: 0 |   Pitch: 0 | ||||||
|   Yaw: 0 |   Yaw: 0 | ||||||
|   BodyYaw: 0 |   BodyYaw: 0 | ||||||
|  | |||||||
| @ -142,6 +142,11 @@ namespace NeonTea.Quakeball.Networking.Instances { | |||||||
|                 case PlayerAction.Jump: |                 case PlayerAction.Jump: | ||||||
|                     Players[action.PlayerId].Controlled.Jump(); |                     Players[action.PlayerId].Controlled.Jump(); | ||||||
|                     break; |                     break; | ||||||
|  |                 case PlayerAction.Shoot: | ||||||
|  |                     ShootData shootData = (ShootData)action.Serializable; | ||||||
|  |                     HandleSyncPckt(shootData.SyncPckt); | ||||||
|  |                     Players[action.PlayerId].Controlled.Shoot(); | ||||||
|  |                     break; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -161,10 +166,10 @@ namespace NeonTea.Quakeball.Networking.Instances { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override void LocalPlayerAction(PlayerAction action) { |         public override void LocalPlayerAction(PlayerAction action, Serializable serializable = null) { | ||||||
|             if (SelfIdentified && Server != null) { |             if (SelfIdentified && Server != null) { | ||||||
|                 PlayerActionPckt jump = new PlayerActionPckt(action); |                 PlayerActionPckt actionPckt = new PlayerActionPckt(action, serializable); | ||||||
|                 Peer.SendReliable(Server.uid, jump); |                 Peer.SendReliable(Server.uid, actionPckt); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -25,7 +25,7 @@ namespace NeonTea.Quakeball.Networking.Instances { | |||||||
| 
 | 
 | ||||||
|         public abstract void UpdateLocalPlayer(); |         public abstract void UpdateLocalPlayer(); | ||||||
|         public abstract void SendPlayerSync(); |         public abstract void SendPlayerSync(); | ||||||
|         public abstract void LocalPlayerAction(PlayerAction action); |         public abstract void LocalPlayerAction(PlayerAction action, Serializable serializable = null); | ||||||
| 
 | 
 | ||||||
|         public virtual void Update() { } |         public virtual void Update() { } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -157,6 +157,17 @@ namespace NeonTea.Quakeball.Networking.Instances { | |||||||
|                         SendReliableToAll(action); |                         SendReliableToAll(action); | ||||||
|                     } |                     } | ||||||
|                     break; |                     break; | ||||||
|  |                 case PlayerAction.Shoot: | ||||||
|  |                     ShootData shootData = (ShootData)action.Serializable; | ||||||
|  |                     HandleSyncPckt(uid, shootData.SyncPckt); | ||||||
|  |                     Players[uid].Controlled.Shoot(); | ||||||
|  | 
 | ||||||
|  |                     action.PlayerId = uid; | ||||||
|  |                     NetPlayer Player = Players[uid]; | ||||||
|  |                     shootData.SyncPckt = Player.Controlled.CreateSyncPacket(Player.Id, Player.Unsynced); | ||||||
|  |                     Player.Unsynced = false; | ||||||
|  |                     SendReliableToAll(action); | ||||||
|  |                     break; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -183,9 +194,9 @@ namespace NeonTea.Quakeball.Networking.Instances { | |||||||
|             SendUnreliableToAll(pckt); |             SendUnreliableToAll(pckt); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override void LocalPlayerAction(PlayerAction action) { |         public override void LocalPlayerAction(PlayerAction action, Serializable serializable = null) { | ||||||
|             PlayerActionPckt jump = new PlayerActionPckt(action, LocalPlayer.Id); |             PlayerActionPckt actionPckt = new PlayerActionPckt(action, serializable, LocalPlayer.Id); | ||||||
|             SendReliableToAll(jump); |             SendReliableToAll(actionPckt); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public override void SendPlayerSync() { |         public override void SendPlayerSync() { | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| 
 | using UnityEngine; | ||||||
| using NeonTea.Quakeball.TeaNet.Packets; | using NeonTea.Quakeball.TeaNet.Packets; | ||||||
| 
 | 
 | ||||||
| namespace NeonTea.Quakeball.Networking.Packets { | namespace NeonTea.Quakeball.Networking.Packets { | ||||||
| @ -9,8 +9,9 @@ namespace NeonTea.Quakeball.Networking.Packets { | |||||||
|         public Serializable Serializable; |         public Serializable Serializable; | ||||||
| 
 | 
 | ||||||
|         public PlayerActionPckt() { } |         public PlayerActionPckt() { } | ||||||
|         public PlayerActionPckt(PlayerAction action, ulong id = 0) { |         public PlayerActionPckt(PlayerAction action, Serializable serializable, ulong id = 0) { | ||||||
|             Action = action; |             Action = action; | ||||||
|  |             Serializable = serializable; | ||||||
|             PlayerId = id; |             PlayerId = id; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -22,9 +23,8 @@ namespace NeonTea.Quakeball.Networking.Packets { | |||||||
|                     break; |                     break; | ||||||
|                 case 1: |                 case 1: | ||||||
|                     Action = PlayerAction.Shoot; |                     Action = PlayerAction.Shoot; | ||||||
|                     ShootData data = new ShootData(); |                     Serializable = new ShootData(); | ||||||
|                     data.Read(buffer); |                     Serializable.Read(buffer); | ||||||
|                     Serializable = data; |  | ||||||
|                     break; |                     break; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @ -45,10 +45,28 @@ namespace NeonTea.Quakeball.Networking.Packets { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public class ShootData : Serializable { |     public class ShootData : Serializable { | ||||||
|  |         public float Pitch; | ||||||
|  |         public float Yaw; | ||||||
|  |         public PlayerSyncPacket SyncPckt; | ||||||
|  | 
 | ||||||
|  |         public ShootData() { } | ||||||
|  |         public ShootData(float pitch, float yaw, PlayerSyncPacket syncPckt) { | ||||||
|  |             Pitch = pitch; | ||||||
|  |             Yaw = yaw; | ||||||
|  |             SyncPckt = syncPckt; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         public void Read(ByteBuffer buffer) { |         public void Read(ByteBuffer buffer) { | ||||||
|  |             Pitch = buffer.ReadFloat(); | ||||||
|  |             Yaw = buffer.ReadFloat(); | ||||||
|  |             SyncPckt = new PlayerSyncPacket(); | ||||||
|  |             SyncPckt.Read(buffer); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public void Write(ByteBuffer buffer) { |         public void Write(ByteBuffer buffer) { | ||||||
|  |             buffer.Write(Pitch); | ||||||
|  |             buffer.Write(Yaw); | ||||||
|  |             SyncPckt.Write(buffer); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -19,6 +19,7 @@ namespace NeonTea.Quakeball.Players { | |||||||
|         private InputAction MoveAction; |         private InputAction MoveAction; | ||||||
|         private InputAction CrouchAction; |         private InputAction CrouchAction; | ||||||
|         private InputAction JumpAction; |         private InputAction JumpAction; | ||||||
|  |         private InputAction ShootAction; | ||||||
| 
 | 
 | ||||||
|         private float PreviousPlayerUpdate = -1; |         private float PreviousPlayerUpdate = -1; | ||||||
|         private float PreviousPlayerFullSync = -1; |         private float PreviousPlayerFullSync = -1; | ||||||
| @ -46,6 +47,13 @@ namespace NeonTea.Quakeball.Players { | |||||||
|                 .With("Left", "<Keyboard>/a") |                 .With("Left", "<Keyboard>/a") | ||||||
|                 .With("Right", "<Keyboard>/d"); |                 .With("Right", "<Keyboard>/d"); | ||||||
| 
 | 
 | ||||||
|  |             ShootAction = new InputAction("Shoot", binding: "<Mouse>/leftButton"); | ||||||
|  |             ShootAction.performed += _ => { | ||||||
|  |                 ShootData shootData = new ShootData(Player.Pitch, Player.Yaw, Player.CreateSyncPacket()); | ||||||
|  |                 Networking.Net.Singleton.Instance.LocalPlayerAction(PlayerAction.Shoot, shootData); | ||||||
|  |                 Player.Shoot(); | ||||||
|  |             }; | ||||||
|  | 
 | ||||||
|             Terminal.Singleton.RegisterCommand("tp", args => { |             Terminal.Singleton.RegisterCommand("tp", args => { | ||||||
|                 if (args.Length != 3) { |                 if (args.Length != 3) { | ||||||
|                     return false; |                     return false; | ||||||
| @ -61,6 +69,7 @@ namespace NeonTea.Quakeball.Players { | |||||||
|                 JumpAction.Disable(); |                 JumpAction.Disable(); | ||||||
|                 LookAction.Disable(); |                 LookAction.Disable(); | ||||||
|                 MoveAction.Disable(); |                 MoveAction.Disable(); | ||||||
|  |                 ShootAction.Disable(); | ||||||
|                 Cursor.lockState = CursorLockMode.None; |                 Cursor.lockState = CursorLockMode.None; | ||||||
|                 Cursor.visible = true; |                 Cursor.visible = true; | ||||||
|             } else { |             } else { | ||||||
| @ -68,6 +77,7 @@ namespace NeonTea.Quakeball.Players { | |||||||
|                 JumpAction.Enable(); |                 JumpAction.Enable(); | ||||||
|                 LookAction.Enable(); |                 LookAction.Enable(); | ||||||
|                 MoveAction.Enable(); |                 MoveAction.Enable(); | ||||||
|  |                 ShootAction.Enable(); | ||||||
|                 Cursor.visible = false; |                 Cursor.visible = false; | ||||||
|                 Cursor.lockState = CursorLockMode.Locked; |                 Cursor.lockState = CursorLockMode.Locked; | ||||||
|             } |             } | ||||||
|  | |||||||
| @ -1,6 +1,7 @@ | |||||||
| using UnityEngine; | using UnityEngine; | ||||||
| using NeonTea.Quakeball.Networking.Packets; | using NeonTea.Quakeball.Networking.Packets; | ||||||
| using NeonTea.Quakeball.Util; | using NeonTea.Quakeball.Util; | ||||||
|  | using NeonTea.Quakeball.Interface; | ||||||
| 
 | 
 | ||||||
| namespace NeonTea.Quakeball.Players { | namespace NeonTea.Quakeball.Players { | ||||||
|     /// <summary>The central glue class for players (both local and remote).</summary> |     /// <summary>The central glue class for players (both local and remote).</summary> | ||||||
| @ -133,6 +134,10 @@ namespace NeonTea.Quakeball.Players { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         public void Shoot() { | ||||||
|  |             Terminal.Singleton.Println("<color=#F00><b>BANG!</b></color>"); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|         public bool IsGrounded() { |         public bool IsGrounded() { | ||||||
|             return CharacterController.isGrounded && Vector3.Dot(GravitationalVelocity, Vector3.down) >= 0; |             return CharacterController.isGrounded && Vector3.Dot(GravitationalVelocity, Vector3.down) >= 0; | ||||||
|         } |         } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user