Add shooty
This commit is contained in:
parent
48f02df34c
commit
7d60350142
@ -44,7 +44,6 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 1865991757674780053}
|
||||
- component: {fileID: 2075495528035690810}
|
||||
- component: {fileID: 6867077562160249920}
|
||||
m_Layer: 0
|
||||
m_Name: GunRoot
|
||||
m_TagString: Untagged
|
||||
@ -64,8 +63,8 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 8204020546429986303}
|
||||
m_Father: {fileID: 7391558912382528812}
|
||||
m_RootOrder: 2
|
||||
m_Father: {fileID: 3811958100146932696}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!95 &2075495528035690810
|
||||
Animator:
|
||||
@ -86,19 +85,6 @@ Animator:
|
||||
m_HasTransformHierarchy: 1
|
||||
m_AllowConstantClipSamplingOptimization: 1
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -194,6 +180,51 @@ BoxCollider:
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -445,7 +476,7 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 7391558911651855223}
|
||||
- {fileID: 7391558913556166742}
|
||||
- {fileID: 1865991757674780053}
|
||||
- {fileID: 3811958100146932696}
|
||||
m_Father: {fileID: 7391558912167870012}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@ -576,7 +607,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
CoyoteTime: 0.2
|
||||
CoyoteTimePingBias: 0
|
||||
PingBias: 0
|
||||
UpdateFrequency: 30
|
||||
MoveStyles:
|
||||
- {fileID: 11400000, guid: 550df8ac62d76a64a8c621ea6b32398f, type: 2}
|
||||
@ -588,7 +619,7 @@ MonoBehaviour:
|
||||
Lerpables:
|
||||
- {fileID: 2566772175078312154}
|
||||
- {fileID: 1798037817325599949}
|
||||
- {fileID: 6867077562160249920}
|
||||
- {fileID: 4000144568201082722}
|
||||
Pitch: 0
|
||||
Yaw: 0
|
||||
BodyYaw: 0
|
||||
|
@ -142,6 +142,11 @@ namespace NeonTea.Quakeball.Networking.Instances {
|
||||
case PlayerAction.Jump:
|
||||
Players[action.PlayerId].Controlled.Jump();
|
||||
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) {
|
||||
PlayerActionPckt jump = new PlayerActionPckt(action);
|
||||
Peer.SendReliable(Server.uid, jump);
|
||||
PlayerActionPckt actionPckt = new PlayerActionPckt(action, serializable);
|
||||
Peer.SendReliable(Server.uid, actionPckt);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ namespace NeonTea.Quakeball.Networking.Instances {
|
||||
|
||||
public abstract void UpdateLocalPlayer();
|
||||
public abstract void SendPlayerSync();
|
||||
public abstract void LocalPlayerAction(PlayerAction action);
|
||||
public abstract void LocalPlayerAction(PlayerAction action, Serializable serializable = null);
|
||||
|
||||
public virtual void Update() { }
|
||||
|
||||
|
@ -157,6 +157,17 @@ namespace NeonTea.Quakeball.Networking.Instances {
|
||||
SendReliableToAll(action);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
public override void LocalPlayerAction(PlayerAction action) {
|
||||
PlayerActionPckt jump = new PlayerActionPckt(action, LocalPlayer.Id);
|
||||
SendReliableToAll(jump);
|
||||
public override void LocalPlayerAction(PlayerAction action, Serializable serializable = null) {
|
||||
PlayerActionPckt actionPckt = new PlayerActionPckt(action, serializable, LocalPlayer.Id);
|
||||
SendReliableToAll(actionPckt);
|
||||
}
|
||||
|
||||
public override void SendPlayerSync() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
|
||||
using UnityEngine;
|
||||
using NeonTea.Quakeball.TeaNet.Packets;
|
||||
|
||||
namespace NeonTea.Quakeball.Networking.Packets {
|
||||
@ -9,8 +9,9 @@ namespace NeonTea.Quakeball.Networking.Packets {
|
||||
public Serializable Serializable;
|
||||
|
||||
public PlayerActionPckt() { }
|
||||
public PlayerActionPckt(PlayerAction action, ulong id = 0) {
|
||||
public PlayerActionPckt(PlayerAction action, Serializable serializable, ulong id = 0) {
|
||||
Action = action;
|
||||
Serializable = serializable;
|
||||
PlayerId = id;
|
||||
}
|
||||
|
||||
@ -22,9 +23,8 @@ namespace NeonTea.Quakeball.Networking.Packets {
|
||||
break;
|
||||
case 1:
|
||||
Action = PlayerAction.Shoot;
|
||||
ShootData data = new ShootData();
|
||||
data.Read(buffer);
|
||||
Serializable = data;
|
||||
Serializable = new ShootData();
|
||||
Serializable.Read(buffer);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -45,10 +45,28 @@ namespace NeonTea.Quakeball.Networking.Packets {
|
||||
}
|
||||
|
||||
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) {
|
||||
Pitch = buffer.ReadFloat();
|
||||
Yaw = buffer.ReadFloat();
|
||||
SyncPckt = new PlayerSyncPacket();
|
||||
SyncPckt.Read(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 CrouchAction;
|
||||
private InputAction JumpAction;
|
||||
private InputAction ShootAction;
|
||||
|
||||
private float PreviousPlayerUpdate = -1;
|
||||
private float PreviousPlayerFullSync = -1;
|
||||
@ -46,6 +47,13 @@ namespace NeonTea.Quakeball.Players {
|
||||
.With("Left", "<Keyboard>/a")
|
||||
.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 => {
|
||||
if (args.Length != 3) {
|
||||
return false;
|
||||
@ -61,6 +69,7 @@ namespace NeonTea.Quakeball.Players {
|
||||
JumpAction.Disable();
|
||||
LookAction.Disable();
|
||||
MoveAction.Disable();
|
||||
ShootAction.Disable();
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
Cursor.visible = true;
|
||||
} else {
|
||||
@ -68,6 +77,7 @@ namespace NeonTea.Quakeball.Players {
|
||||
JumpAction.Enable();
|
||||
LookAction.Enable();
|
||||
MoveAction.Enable();
|
||||
ShootAction.Enable();
|
||||
Cursor.visible = false;
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using UnityEngine;
|
||||
using NeonTea.Quakeball.Networking.Packets;
|
||||
using NeonTea.Quakeball.Util;
|
||||
using NeonTea.Quakeball.Interface;
|
||||
|
||||
namespace NeonTea.Quakeball.Players {
|
||||
/// <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() {
|
||||
return CharacterController.isGrounded && Vector3.Dot(GravitationalVelocity, Vector3.down) >= 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user