mirror of
https://github.com/Alex-Rachel/TEngine.git
synced 2025-08-14 16:51:28 +00:00
Remove Kcp Test
Remove Kcp Test
This commit is contained in:
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 454f6287cca1ad140aa09757624c67f6
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 886c48d92cb0ea4419c8131cf0b2f865
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 1b33a27a75114b7488254dac4703efad
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,158 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
|
|
||||||
namespace KcpProject
|
|
||||||
{
|
|
||||||
class KCPSession
|
|
||||||
{
|
|
||||||
private Socket mSocket = null;
|
|
||||||
private KCP mKCP = null;
|
|
||||||
|
|
||||||
private ByteBuffer mRecvBuffer = ByteBuffer.Allocate(1024 * 32);
|
|
||||||
private UInt32 mNextUpdateTime = 0;
|
|
||||||
|
|
||||||
public bool IsConnected { get { return mSocket != null && mSocket.Connected; } }
|
|
||||||
public bool WriteDelay { get; set; }
|
|
||||||
public bool AckNoDelay { get; set; }
|
|
||||||
|
|
||||||
public IPEndPoint RemoteAddress { get; private set; }
|
|
||||||
public IPEndPoint LocalAddress { get; private set; }
|
|
||||||
|
|
||||||
public void Connect(string host, int port)
|
|
||||||
{
|
|
||||||
IPHostEntry hostEntry = Dns.GetHostEntry(host);
|
|
||||||
if (hostEntry.AddressList.Length == 0)
|
|
||||||
{
|
|
||||||
throw new Exception("Unable to resolve host: " + host);
|
|
||||||
}
|
|
||||||
var endpoint = hostEntry.AddressList[0];
|
|
||||||
mSocket = new Socket(endpoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
|
|
||||||
mSocket.Connect(endpoint, port);
|
|
||||||
RemoteAddress = (IPEndPoint)mSocket.RemoteEndPoint;
|
|
||||||
LocalAddress = (IPEndPoint)mSocket.LocalEndPoint;
|
|
||||||
mKCP = new KCP((uint)(new Random().Next(1, Int32.MaxValue)), rawSend);
|
|
||||||
// normal: 0, 40, 2, 1
|
|
||||||
// fast: 0, 30, 2, 1
|
|
||||||
// fast2: 1, 20, 2, 1
|
|
||||||
// fast3: 1, 10, 2, 1
|
|
||||||
mKCP.NoDelay(1, 20, 2, 1);
|
|
||||||
mKCP.SetStreamMode(true);
|
|
||||||
mRecvBuffer.Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close()
|
|
||||||
{
|
|
||||||
if (mSocket != null) {
|
|
||||||
mSocket.Close();
|
|
||||||
mSocket = null;
|
|
||||||
mRecvBuffer.Clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void rawSend(byte[] data, int length)
|
|
||||||
{
|
|
||||||
if (mSocket != null) {
|
|
||||||
mSocket.Send(data, length, SocketFlags.None);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Send(byte[] data, int index, int length)
|
|
||||||
{
|
|
||||||
if (mSocket == null)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
var waitsnd = mKCP.WaitSnd;
|
|
||||||
if (waitsnd < mKCP.SndWnd && waitsnd < mKCP.RmtWnd) {
|
|
||||||
|
|
||||||
var sendBytes = 0;
|
|
||||||
do {
|
|
||||||
var n = Math.Min((int)mKCP.Mss, length - sendBytes);
|
|
||||||
mKCP.Send(data, index + sendBytes, n);
|
|
||||||
sendBytes += n;
|
|
||||||
} while (sendBytes < length);
|
|
||||||
|
|
||||||
waitsnd = mKCP.WaitSnd;
|
|
||||||
if (waitsnd >= mKCP.SndWnd || waitsnd >= mKCP.RmtWnd || !WriteDelay) {
|
|
||||||
mKCP.Flush(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
return length;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int Recv(byte[] data, int index, int length)
|
|
||||||
{
|
|
||||||
// 上次剩下的部分
|
|
||||||
if (mRecvBuffer.ReadableBytes > 0) {
|
|
||||||
var recvBytes = Math.Min(mRecvBuffer.ReadableBytes, length);
|
|
||||||
Buffer.BlockCopy(mRecvBuffer.RawBuffer, mRecvBuffer.ReaderIndex, data, index, recvBytes);
|
|
||||||
mRecvBuffer.ReaderIndex += recvBytes;
|
|
||||||
// 读完重置读写指针
|
|
||||||
if (mRecvBuffer.ReaderIndex == mRecvBuffer.WriterIndex) {
|
|
||||||
mRecvBuffer.Clear();
|
|
||||||
}
|
|
||||||
return recvBytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mSocket == null)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (!mSocket.Poll(0, SelectMode.SelectRead)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
var rn = 0;
|
|
||||||
try {
|
|
||||||
rn = mSocket.Receive(mRecvBuffer.RawBuffer, mRecvBuffer.WriterIndex, mRecvBuffer.WritableBytes, SocketFlags.None);
|
|
||||||
} catch(Exception ex) {
|
|
||||||
UnityEngine.Debug.LogError(ex);
|
|
||||||
rn = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rn <= 0) {
|
|
||||||
return rn;
|
|
||||||
}
|
|
||||||
mRecvBuffer.WriterIndex += rn;
|
|
||||||
|
|
||||||
var inputN = mKCP.Input(mRecvBuffer.RawBuffer, mRecvBuffer.ReaderIndex, mRecvBuffer.ReadableBytes, true, AckNoDelay);
|
|
||||||
if (inputN < 0) {
|
|
||||||
mRecvBuffer.Clear();
|
|
||||||
return inputN;
|
|
||||||
}
|
|
||||||
mRecvBuffer.Clear();
|
|
||||||
|
|
||||||
// 读完所有完整的消息
|
|
||||||
for (;;) {
|
|
||||||
var size = mKCP.PeekSize();
|
|
||||||
if (size <= 0) break;
|
|
||||||
|
|
||||||
mRecvBuffer.EnsureWritableBytes(size);
|
|
||||||
|
|
||||||
var n = mKCP.Recv(mRecvBuffer.RawBuffer, mRecvBuffer.WriterIndex, size);
|
|
||||||
if (n > 0) mRecvBuffer.WriterIndex += n;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 有数据待接收
|
|
||||||
if (mRecvBuffer.ReadableBytes > 0) {
|
|
||||||
return Recv(data, index, length);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update()
|
|
||||||
{
|
|
||||||
if (mSocket == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (0 == mNextUpdateTime || mKCP.CurrentMS >= mNextUpdateTime)
|
|
||||||
{
|
|
||||||
mKCP.Update();
|
|
||||||
mNextUpdateTime = mKCP.Check();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: ae3b5d0742eaa4440b71c417a13d8a6f
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,341 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 9
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 0
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 0}
|
|
||||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 11
|
|
||||||
m_GIWorkflowMode: 1
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 12
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 40
|
|
||||||
m_AtlasSize: 1024
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_ExtractAmbientOcclusion: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 512
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVREnvironmentSampleCount: 256
|
|
||||||
m_PVREnvironmentReferencePointCount: 2048
|
|
||||||
m_PVRFilteringMode: 1
|
|
||||||
m_PVRDenoiserTypeDirect: 1
|
|
||||||
m_PVRDenoiserTypeIndirect: 1
|
|
||||||
m_PVRDenoiserTypeAO: 1
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVREnvironmentMIS: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_UseShadowmask: 1
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &495368858
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 495368861}
|
|
||||||
- component: {fileID: 495368860}
|
|
||||||
- component: {fileID: 495368859}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &495368859
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 495368858}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &495368860
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 495368858}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &495368861
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 495368858}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &1154372134
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1154372135}
|
|
||||||
- component: {fileID: 1154372136}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1154372135
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1154372134}
|
|
||||||
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: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 2
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &1154372136
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1154372134}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: b251dc2e3e09685448a5f448f611731e, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &1547899605
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1547899607}
|
|
||||||
- component: {fileID: 1547899606}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Directional Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &1547899606
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1547899605}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Type: 1
|
|
||||||
m_Shape: 0
|
|
||||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_InnerSpotAngle: 21.80208
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 2
|
|
||||||
m_Resolution: -1
|
|
||||||
m_CustomResolution: -1
|
|
||||||
m_Strength: 1
|
|
||||||
m_Bias: 0.05
|
|
||||||
m_NormalBias: 0.4
|
|
||||||
m_NearPlane: 0.2
|
|
||||||
m_CullingMatrixOverride:
|
|
||||||
e00: 1
|
|
||||||
e01: 0
|
|
||||||
e02: 0
|
|
||||||
e03: 0
|
|
||||||
e10: 0
|
|
||||||
e11: 1
|
|
||||||
e12: 0
|
|
||||||
e13: 0
|
|
||||||
e20: 0
|
|
||||||
e21: 0
|
|
||||||
e22: 1
|
|
||||||
e23: 0
|
|
||||||
e30: 0
|
|
||||||
e31: 0
|
|
||||||
e32: 0
|
|
||||||
e33: 1
|
|
||||||
m_UseCullingMatrixOverride: 0
|
|
||||||
m_Cookie: {fileID: 0}
|
|
||||||
m_DrawHalo: 0
|
|
||||||
m_Flare: {fileID: 0}
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingLayerMask: 1
|
|
||||||
m_Lightmapping: 4
|
|
||||||
m_LightShadowCasterMode: 0
|
|
||||||
m_AreaSize: {x: 1, y: 1}
|
|
||||||
m_BounceIntensity: 1
|
|
||||||
m_ColorTemperature: 6570
|
|
||||||
m_UseColorTemperature: 0
|
|
||||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_UseBoundingSphereOverride: 0
|
|
||||||
m_ShadowRadius: 0
|
|
||||||
m_ShadowAngle: 0
|
|
||||||
--- !u!4 &1547899607
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1547899605}
|
|
||||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8211cbb6cf3d03d479184d2a4d5eec0c
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,67 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Threading;
|
|
||||||
using KcpProject;
|
|
||||||
using TEngine;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class KcpTest : MonoBehaviour
|
|
||||||
{
|
|
||||||
private KCPSession connection;
|
|
||||||
byte[] buffer = new byte[1500];
|
|
||||||
int counter = 0;
|
|
||||||
int sendBytes = 0;
|
|
||||||
int recvBytes = 0;
|
|
||||||
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
connection = new KCPSession();
|
|
||||||
connection.AckNoDelay = true;
|
|
||||||
connection.WriteDelay = false;
|
|
||||||
|
|
||||||
connection.Connect("127.0.0.1", 4444);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update is called once per frame
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (connection == null || !connection.IsConnected)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
connection.Update();
|
|
||||||
|
|
||||||
//firstSend = false;
|
|
||||||
// Console.WriteLine("Write Message...");
|
|
||||||
//var text = Encoding.UTF8.GetBytes(string.Format("Hello KCP: {0}", ++counter));
|
|
||||||
var sent = connection.Send(buffer, 0, buffer.Length);
|
|
||||||
if (sent < 0)
|
|
||||||
{
|
|
||||||
TLogger.LogError("Write message failed.");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sent > 0)
|
|
||||||
{
|
|
||||||
counter++;
|
|
||||||
sendBytes += buffer.Length;
|
|
||||||
if (counter >= 500)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var n = connection.Recv(buffer, 0, buffer.Length);
|
|
||||||
if (n == 0)
|
|
||||||
{
|
|
||||||
Thread.Sleep(10);
|
|
||||||
}
|
|
||||||
else if (n < 0)
|
|
||||||
{
|
|
||||||
TLogger.LogError("Receive Message failed.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
recvBytes += n;
|
|
||||||
TLogger.LogError($"{recvBytes} / {sendBytes}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b251dc2e3e09685448a5f448f611731e
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6ba3d5fa738b00f448f8e0d610c54564
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,71 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Buffers;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.Sockets;
|
|
||||||
using System.Net.Sockets.Kcp;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Kcp
|
|
||||||
{
|
|
||||||
public class KcpClient : IKcpCallback
|
|
||||||
{
|
|
||||||
UdpClient client;
|
|
||||||
|
|
||||||
public KcpClient(int port)
|
|
||||||
: this(port, null)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public KcpClient(int port, IPEndPoint endPoint)
|
|
||||||
{
|
|
||||||
client = new UdpClient(port);
|
|
||||||
kcp = new System.Net.Sockets.Kcp.Kcp(2001, this);
|
|
||||||
this.EndPoint = endPoint;
|
|
||||||
BeginRecv();
|
|
||||||
}
|
|
||||||
|
|
||||||
public System.Net.Sockets.Kcp.Kcp kcp { get; }
|
|
||||||
public IPEndPoint EndPoint { get; set; }
|
|
||||||
|
|
||||||
public void Output(IMemoryOwner<byte> buffer, int avalidLength)
|
|
||||||
{
|
|
||||||
var s = buffer.Memory.Span.Slice(0, avalidLength).ToArray();
|
|
||||||
client.SendAsync(s, s.Length, EndPoint);
|
|
||||||
buffer.Dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void SendAsync(byte[] datagram, int bytes)
|
|
||||||
{
|
|
||||||
kcp.Send(datagram.AsSpan().Slice(0, bytes));
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<byte[]> ReceiveAsync()
|
|
||||||
{
|
|
||||||
var (buffer, avalidLength) = kcp.TryRecv();
|
|
||||||
if (buffer == null)
|
|
||||||
{
|
|
||||||
await Task.Delay(10);
|
|
||||||
return await ReceiveAsync();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
var s = buffer.Memory.Span.Slice(0, avalidLength).ToArray();
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void BeginRecv()
|
|
||||||
{
|
|
||||||
var res = await client.ReceiveAsync();
|
|
||||||
EndPoint = res.RemoteEndPoint;
|
|
||||||
kcp.Input(res.Buffer);
|
|
||||||
BeginRecv();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IMemoryOwner<byte> RentBuffer(int length)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: d42aa219010afaf4584ebc1b0ce71c35
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: d62fe636d4b136647a9fb837609f35a8
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@@ -1,32 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 46160d30013b98c4ba33d5b915fe37a7
|
|
||||||
PluginImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
iconMap: {}
|
|
||||||
executionOrder: {}
|
|
||||||
defineConstraints: []
|
|
||||||
isPreloaded: 0
|
|
||||||
isOverridable: 0
|
|
||||||
isExplicitlyReferenced: 0
|
|
||||||
platformData:
|
|
||||||
- first:
|
|
||||||
Any:
|
|
||||||
second:
|
|
||||||
enabled: 1
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Editor: Editor
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
DefaultValueInitialized: true
|
|
||||||
- first:
|
|
||||||
Windows Store Apps: WindowsStoreApps
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
CPU: AnyCPU
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,331 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<doc>
|
|
||||||
<assembly>
|
|
||||||
<name>Kcp</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:System.Net.Sockets.Kcp.IKcpCallback">
|
|
||||||
<summary>
|
|
||||||
Kcp回调
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.IKcpCallback.Output(System.Buffers.IMemoryOwner{System.Byte},System.Int32)">
|
|
||||||
<summary>
|
|
||||||
kcp 发送方向输出
|
|
||||||
</summary>
|
|
||||||
<param name="buffer">kcp 交出发送缓冲区控制权,缓冲区来自<see cref="M:System.Net.Sockets.Kcp.IKcpCallback.RentBuffer(System.Int32)"/></param>
|
|
||||||
<param name="avalidLength">数据的有效长度</param>
|
|
||||||
<returns>不需要返回值</returns>
|
|
||||||
<remarks>通过增加 avalidLength 能够在协议栈中有效的减少数据拷贝</remarks>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.IKcpCallback.RentBuffer(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
外部提供缓冲区,可以在外部链接一个内存池
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="T:System.Net.Sockets.Kcp.Kcp">
|
|
||||||
<summary>
|
|
||||||
https://github.com/skywind3000/kcp/wiki/Network-Layer
|
|
||||||
<para>外部buffer ----拆分拷贝----等待列表 -----移动----发送列表----拷贝----发送buffer---output</para>
|
|
||||||
https://github.com/skywind3000/kcp/issues/118#issuecomment-338133930
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.#ctor(System.UInt32,System.Net.Sockets.Kcp.IKcpCallback)">
|
|
||||||
<summary>
|
|
||||||
create a new kcp control object, 'conv' must equal in two endpoint
|
|
||||||
from the same connection.
|
|
||||||
</summary>
|
|
||||||
<param name="conv_"></param>
|
|
||||||
<param name="output_"></param>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.Kcp.conv">
|
|
||||||
<summary>
|
|
||||||
频道号
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.mtu">
|
|
||||||
<summary>
|
|
||||||
最大传输单元(Maximum Transmission Unit,MTU)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.Kcp.BufferNeedSize">
|
|
||||||
<summary>
|
|
||||||
缓冲区最小大小
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.mss">
|
|
||||||
<summary>
|
|
||||||
最大报文段长度
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_nxt">
|
|
||||||
<summary>
|
|
||||||
下一个等待接收消息ID
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.IsLittleEndian">
|
|
||||||
<summary>
|
|
||||||
<para>https://github.com/skywind3000/kcp/issues/53</para>
|
|
||||||
按照 C版 设计,使用小端字节序
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.acklist">
|
|
||||||
<summary>
|
|
||||||
发送 ack 队列
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.snd_queue">
|
|
||||||
<summary>
|
|
||||||
发送等待队列
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.snd_buf">
|
|
||||||
<summary>
|
|
||||||
正在发送列表
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_queue">
|
|
||||||
<summary>
|
|
||||||
正在等待触发接收回调函数消息列表
|
|
||||||
<para>需要执行的操作 添加 遍历 删除</para>
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.rcv_buf">
|
|
||||||
<summary>
|
|
||||||
正在等待重组消息列表
|
|
||||||
<para>需要执行的操作 添加 插入 遍历 删除</para>
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.Kcp.m_disposing">
|
|
||||||
<summary>
|
|
||||||
是否正在释放
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Dispose">
|
|
||||||
<summary>
|
|
||||||
释放不是严格线程安全的,尽量使用和Update相同的线程调用,
|
|
||||||
或者等待析构时自动释放。
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.CreateBuffer(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
如果外部能够提供缓冲区则使用外部缓冲区,否则new byte[]
|
|
||||||
</summary>
|
|
||||||
<param name="needSize"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Recv(System.Span{System.Byte})">
|
|
||||||
<summary>
|
|
||||||
user/upper level recv: returns size, returns below zero for EAGAIN
|
|
||||||
</summary>
|
|
||||||
<param name="buffer"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.UncheckRecv(System.Span{System.Byte})">
|
|
||||||
<summary>
|
|
||||||
这个函数不检查任何参数
|
|
||||||
</summary>
|
|
||||||
<param name="buffer"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Move_Rcv_buf_2_Rcv_queue">
|
|
||||||
<summary>
|
|
||||||
move available data from rcv_buf -> rcv_queue
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.PeekSize">
|
|
||||||
<summary>
|
|
||||||
check the size of next message in the recv queue
|
|
||||||
</summary>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Send(System.Span{System.Byte})">
|
|
||||||
<summary>
|
|
||||||
user/upper level send, returns below zero for error
|
|
||||||
</summary>
|
|
||||||
<param name="buffer"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Update_ack(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
update ack.
|
|
||||||
</summary>
|
|
||||||
<param name="rtt"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Input(System.Span{System.Byte})">
|
|
||||||
<summary>
|
|
||||||
when you received a low level packet (eg. UDP packet), call it
|
|
||||||
</summary>
|
|
||||||
<param name="data"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Flush">
|
|
||||||
<summary>
|
|
||||||
flush pending data
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Update(System.DateTime@)">
|
|
||||||
<summary>
|
|
||||||
update state (call it repeatedly, every 10ms-100ms), or you can ask
|
|
||||||
ikcp_check when to call it again (without ikcp_input/_send calling).
|
|
||||||
</summary>
|
|
||||||
<param name="time">DateTime.UtcNow</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Check(System.DateTime)">
|
|
||||||
<summary>
|
|
||||||
Determine when should you invoke ikcp_update:
|
|
||||||
returns when you should invoke ikcp_update in millisec, if there
|
|
||||||
is no ikcp_input/_send calling. you can call ikcp_update in that
|
|
||||||
time, instead of call update repeatly.
|
|
||||||
<para></para>
|
|
||||||
Important to reduce unnacessary ikcp_update invoking. use it to
|
|
||||||
schedule ikcp_update (eg. implementing an epoll-like mechanism,
|
|
||||||
or optimize ikcp_update when handling massive kcp connections)
|
|
||||||
<para></para>
|
|
||||||
</summary>
|
|
||||||
<param name="time"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.SetMtu(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
change MTU size, default is 1400
|
|
||||||
<para>** 这个方法不是线程安全的。请在没有发送和接收时调用 。</para>
|
|
||||||
</summary>
|
|
||||||
<param name="mtu"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.Interval(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
|
|
||||||
</summary>
|
|
||||||
<param name="interval_"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.NoDelay(System.Int32,System.Int32,System.Int32,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
fastest: ikcp_nodelay(kcp, 1, 20, 2, 1)
|
|
||||||
</summary>
|
|
||||||
<param name="nodelay_">0:disable(default), 1:enable</param>
|
|
||||||
<param name="interval_">internal update timer interval in millisec, default is 100ms</param>
|
|
||||||
<param name="resend_">0:disable fast resend(default), 1:enable fast resend</param>
|
|
||||||
<param name="nc_">0:normal congestion control(default), 1:disable congestion control</param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.Kcp.WndSize(System.Int32,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
set maximum window size: sndwnd=32, rcvwnd=32 by default
|
|
||||||
</summary>
|
|
||||||
<param name="sndwnd"></param>
|
|
||||||
<param name="rcvwnd"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.Kcp.WaitSnd">
|
|
||||||
<summary>
|
|
||||||
get how many packet is waiting to be sent
|
|
||||||
</summary>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:System.Net.Sockets.Kcp.KcpSegment">
|
|
||||||
<summary>
|
|
||||||
调整了没存布局,直接拷贝块提升性能。
|
|
||||||
<para>结构体保存内容只有一个指针,不用担心参数传递过程中的性能</para>
|
|
||||||
https://github.com/skywind3000/kcp/issues/118#issuecomment-338133930
|
|
||||||
<para>不要对没有初始化的KcpSegment(内部指针为0,所有属性都将指向位置区域) 进行任何赋值操作,可能导致内存损坏。
|
|
||||||
出于性能考虑,没有对此项进行安全检查。</para>
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.AllocHGlobal(System.Int32)">
|
|
||||||
<summary>
|
|
||||||
使用完必须显示释放,否则内存泄漏
|
|
||||||
</summary>
|
|
||||||
<param name="appendDateSize"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.FreeHGlobal(System.Net.Sockets.Kcp.KcpSegment)">
|
|
||||||
<summary>
|
|
||||||
释放非托管内存
|
|
||||||
</summary>
|
|
||||||
<param name="seg"></param>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.resendts">
|
|
||||||
以下为本机使用的参数
|
|
||||||
<summary>
|
|
||||||
offset = 0
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.rto">
|
|
||||||
<summary>
|
|
||||||
offset = 4
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.fastack">
|
|
||||||
<summary>
|
|
||||||
offset = 8
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.xmit">
|
|
||||||
<summary>
|
|
||||||
offset = 12
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset">
|
|
||||||
以下为需要网络传输的参数
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.conv">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/>
|
|
||||||
</summary>
|
|
||||||
https://github.com/skywind3000/kcp/issues/134
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.cmd">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 4
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.frg">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 5
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.wnd">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 6
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.ts">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 8
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.sn">
|
|
||||||
<summary>
|
|
||||||
<para> SendNumber? </para>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 12
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.una">
|
|
||||||
<summary>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 16
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.len">
|
|
||||||
<summary>
|
|
||||||
<para> AppendDateSize </para>
|
|
||||||
offset = <see cref="F:System.Net.Sockets.Kcp.KcpSegment.LocalOffset"/> + 20
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Net.Sockets.Kcp.KcpSegment.data">
|
|
||||||
<summary>
|
|
||||||
|
|
||||||
</summary>
|
|
||||||
https://github.com/skywind3000/kcp/issues/35#issuecomment-263770736
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Net.Sockets.Kcp.KcpSegment.Encode(System.Span{System.Byte})">
|
|
||||||
<summary>
|
|
||||||
将片段中的要发送的数据拷贝到指定缓冲区
|
|
||||||
</summary>
|
|
||||||
<param name="buffer"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 63423a3fccdee0649a1b108ff1c8fb27
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@@ -1,32 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6adb9236ae2345f4e9c263bc7e4a5f6e
|
|
||||||
PluginImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
iconMap: {}
|
|
||||||
executionOrder: {}
|
|
||||||
defineConstraints: []
|
|
||||||
isPreloaded: 0
|
|
||||||
isOverridable: 0
|
|
||||||
isExplicitlyReferenced: 0
|
|
||||||
platformData:
|
|
||||||
- first:
|
|
||||||
Any:
|
|
||||||
second:
|
|
||||||
enabled: 1
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Editor: Editor
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
DefaultValueInitialized: true
|
|
||||||
- first:
|
|
||||||
Windows Store Apps: WindowsStoreApps
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
CPU: AnyCPU
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,38 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
|
||||||
<assembly>
|
|
||||||
<name>System.Buffers</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:System.Buffers.ArrayPool`1">
|
|
||||||
<summary>Provides a resource pool that enables reusing instances of type <see cref="T[]"></see>.</summary>
|
|
||||||
<typeparam name="T">The type of the objects that are in the resource pool.</typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Buffers.ArrayPool`1.#ctor">
|
|
||||||
<summary>Initializes a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Buffers.ArrayPool`1.Create">
|
|
||||||
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class.</summary>
|
|
||||||
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Buffers.ArrayPool`1.Create(System.Int32,System.Int32)">
|
|
||||||
<summary>Creates a new instance of the <see cref="T:System.Buffers.ArrayPool`1"></see> class using the specifed configuration.</summary>
|
|
||||||
<param name="maxArrayLength">The maximum length of an array instance that may be stored in the pool.</param>
|
|
||||||
<param name="maxArraysPerBucket">The maximum number of array instances that may be stored in each bucket in the pool. The pool groups arrays of similar lengths into buckets for faster access.</param>
|
|
||||||
<returns>A new instance of the <see cref="System.Buffers.ArrayPool`1"></see> class with the specified configuration.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Buffers.ArrayPool`1.Rent(System.Int32)">
|
|
||||||
<summary>Retrieves a buffer that is at least the requested length.</summary>
|
|
||||||
<param name="minimumLength">The minimum length of the array.</param>
|
|
||||||
<returns>An array of type <see cref="T[]"></see> that is at least <paramref name="minimumLength">minimumLength</paramref> in length.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)">
|
|
||||||
<summary>Returns an array to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method on the same <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
|
||||||
<param name="array">A buffer to return to the pool that was previously obtained using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method.</param>
|
|
||||||
<param name="clearArray">Indicates whether the contents of the buffer should be cleared before reuse. If <paramref name="clearArray">clearArray</paramref> is set to true, and if the pool will store the buffer to enable subsequent reuse, the <see cref="M:System.Buffers.ArrayPool`1.Return(`0[],System.Boolean)"></see> method will clear the <paramref name="array">array</paramref> of its contents so that a subsequent caller using the <see cref="M:System.Buffers.ArrayPool`1.Rent(System.Int32)"></see> method will not see the content of the previous caller. If <paramref name="clearArray">clearArray</paramref> is set to false or if the pool will release the buffer, the array&#39;s contents are left unchanged.</param>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Buffers.ArrayPool`1.Shared">
|
|
||||||
<summary>Gets a shared <see cref="T:System.Buffers.ArrayPool`1"></see> instance.</summary>
|
|
||||||
<returns>A shared <see cref="System.Buffers.ArrayPool`1"></see> instance.</returns>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 28cf99f49856cc445826675c24598a57
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@@ -1,32 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4533b86b9dd0e1d4daa22c442238c69e
|
|
||||||
PluginImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
iconMap: {}
|
|
||||||
executionOrder: {}
|
|
||||||
defineConstraints: []
|
|
||||||
isPreloaded: 0
|
|
||||||
isOverridable: 0
|
|
||||||
isExplicitlyReferenced: 0
|
|
||||||
platformData:
|
|
||||||
- first:
|
|
||||||
Any:
|
|
||||||
second:
|
|
||||||
enabled: 1
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Editor: Editor
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
DefaultValueInitialized: true
|
|
||||||
- first:
|
|
||||||
Windows Store Apps: WindowsStoreApps
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
CPU: AnyCPU
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,355 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
|
||||||
<assembly>
|
|
||||||
<name>System.Memory</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:System.Span`1">
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.#ctor(`0[])">
|
|
||||||
<param name="array"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.#ctor(System.Void*,System.Int32)">
|
|
||||||
<param name="pointer"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.#ctor(`0[],System.Int32)">
|
|
||||||
<param name="array"></param>
|
|
||||||
<param name="start"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.#ctor(`0[],System.Int32,System.Int32)">
|
|
||||||
<param name="array"></param>
|
|
||||||
<param name="start"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.Clear">
|
|
||||||
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.CopyTo(System.Span{`0})">
|
|
||||||
<param name="destination"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
|
||||||
<param name="obj"></param>
|
|
||||||
<param name="objectData"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.DangerousGetPinnableReference">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Span`1.Empty">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.Equals(System.Object)">
|
|
||||||
<param name="obj"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.Fill(`0)">
|
|
||||||
<param name="value"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.GetHashCode">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Span`1.IsEmpty">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Span`1.Item(System.Int32)">
|
|
||||||
<param name="index"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.Span`1.Length">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.op_Equality(System.Span{`0},System.Span{`0})">
|
|
||||||
<param name="left"></param>
|
|
||||||
<param name="right"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.op_Implicit(System.ArraySegment{T})~System.Span{T}">
|
|
||||||
<param name="arraySegment"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.op_Implicit(System.Span{T})~System.ReadOnlySpan{T}">
|
|
||||||
<param name="span"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.op_Implicit(T[])~System.Span{T}">
|
|
||||||
<param name="array"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.op_Inequality(System.Span{`0},System.Span{`0})">
|
|
||||||
<param name="left"></param>
|
|
||||||
<param name="right"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.Slice(System.Int32)">
|
|
||||||
<param name="start"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.Slice(System.Int32,System.Int32)">
|
|
||||||
<param name="start"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.ToArray">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Span`1.TryCopyTo(System.Span{`0})">
|
|
||||||
<param name="destination"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:System.SpanExtensions">
|
|
||||||
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.AsBytes``1(System.ReadOnlySpan{``0})">
|
|
||||||
<param name="source"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.AsBytes``1(System.Span{``0})">
|
|
||||||
<param name="source"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.AsSpan(System.String)">
|
|
||||||
<param name="text"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.AsSpan``1(System.ArraySegment{``0})">
|
|
||||||
<param name="arraySegment"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.AsSpan``1(``0[])">
|
|
||||||
<param name="array"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.CopyTo``1(``0[],System.Span{``0})">
|
|
||||||
<param name="array"></param>
|
|
||||||
<param name="destination"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf(System.Span{System.Byte},System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf``1(System.ReadOnlySpan{``0},``0)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOf``1(System.Span{``0},``0)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte,System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value0"></param>
|
|
||||||
<param name="value1"></param>
|
|
||||||
<param name="value2"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte,System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value0"></param>
|
|
||||||
<param name="value1"></param>
|
|
||||||
<param name="value2"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.Byte,System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value0"></param>
|
|
||||||
<param name="value1"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="values"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="values"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.IndexOfAny(System.ReadOnlySpan{System.Byte},System.Byte,System.Byte)">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value0"></param>
|
|
||||||
<param name="value1"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.NonPortableCast``2(System.ReadOnlySpan{``0})">
|
|
||||||
<param name="source"></param>
|
|
||||||
<typeparam name="TFrom"></typeparam>
|
|
||||||
<typeparam name="TTo"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.NonPortableCast``2(System.Span{``0})">
|
|
||||||
<param name="source"></param>
|
|
||||||
<typeparam name="TFrom"></typeparam>
|
|
||||||
<typeparam name="TTo"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.SequenceEqual(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="first"></param>
|
|
||||||
<param name="second"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.SequenceEqual(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="first"></param>
|
|
||||||
<param name="second"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.SequenceEqual``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="first"></param>
|
|
||||||
<param name="second"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.SequenceEqual``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="first"></param>
|
|
||||||
<param name="second"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.StartsWith(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.StartsWith(System.Span{System.Byte},System.ReadOnlySpan{System.Byte})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.StartsWith``1(System.ReadOnlySpan{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.SpanExtensions.StartsWith``1(System.Span{``0},System.ReadOnlySpan{``0})">
|
|
||||||
<param name="span"></param>
|
|
||||||
<param name="value"></param>
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="T:System.ReadOnlySpan`1">
|
|
||||||
<typeparam name="T"></typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[])">
|
|
||||||
<param name="array"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.#ctor(System.Void*,System.Int32)">
|
|
||||||
<param name="pointer"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32)">
|
|
||||||
<param name="array"></param>
|
|
||||||
<param name="start"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.#ctor(`0[],System.Int32,System.Int32)">
|
|
||||||
<param name="array"></param>
|
|
||||||
<param name="start"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.CopyTo(System.Span{`0})">
|
|
||||||
<param name="destination"></param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.DangerousCreate(System.Object,`0@,System.Int32)">
|
|
||||||
<param name="obj"></param>
|
|
||||||
<param name="objectData"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.DangerousGetPinnableReference">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.ReadOnlySpan`1.Empty">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.Equals(System.Object)">
|
|
||||||
<param name="obj"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.GetHashCode">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.ReadOnlySpan`1.IsEmpty">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.ReadOnlySpan`1.Item(System.Int32)">
|
|
||||||
<param name="index"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="P:System.ReadOnlySpan`1.Length">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.op_Equality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
|
||||||
<param name="left"></param>
|
|
||||||
<param name="right"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.op_Implicit(System.ArraySegment{T})~System.ReadOnlySpan{T}">
|
|
||||||
<param name="arraySegment"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.op_Implicit(T[])~System.ReadOnlySpan{T}">
|
|
||||||
<param name="array"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.op_Inequality(System.ReadOnlySpan{`0},System.ReadOnlySpan{`0})">
|
|
||||||
<param name="left"></param>
|
|
||||||
<param name="right"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32)">
|
|
||||||
<param name="start"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.Slice(System.Int32,System.Int32)">
|
|
||||||
<param name="start"></param>
|
|
||||||
<param name="length"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.ToArray">
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.ReadOnlySpan`1.TryCopyTo(System.Span{`0})">
|
|
||||||
<param name="destination"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b54c1784b3e803c45a1d68bfaafbb283
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Binary file not shown.
@@ -1,32 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6e8ded56d8468f749a68256f26df209c
|
|
||||||
PluginImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
iconMap: {}
|
|
||||||
executionOrder: {}
|
|
||||||
defineConstraints: []
|
|
||||||
isPreloaded: 0
|
|
||||||
isOverridable: 0
|
|
||||||
isExplicitlyReferenced: 0
|
|
||||||
platformData:
|
|
||||||
- first:
|
|
||||||
Any:
|
|
||||||
second:
|
|
||||||
enabled: 1
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Editor: Editor
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
DefaultValueInitialized: true
|
|
||||||
- first:
|
|
||||||
Windows Store Apps: WindowsStoreApps
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
CPU: AnyCPU
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,200 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?><doc>
|
|
||||||
<assembly>
|
|
||||||
<name>System.Runtime.CompilerServices.Unsafe</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:System.Runtime.CompilerServices.Unsafe">
|
|
||||||
<summary>Contains generic, low-level functionality for manipulating pointers.</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.Int32)">
|
|
||||||
<summary>Adds an element offset to the given reference.</summary>
|
|
||||||
<param name="source">The reference to add the offset to.</param>
|
|
||||||
<param name="elementOffset">The offset to add.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Add``1(``0@,System.IntPtr)">
|
|
||||||
<summary>Adds an element offset to the given reference.</summary>
|
|
||||||
<param name="source">The reference to add the offset to.</param>
|
|
||||||
<param name="elementOffset">The offset to add.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the addition of offset to pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AddByteOffset``1(``0@,System.IntPtr)">
|
|
||||||
<summary>Adds a byte offset to the given reference.</summary>
|
|
||||||
<param name="source">The reference to add the offset to.</param>
|
|
||||||
<param name="byteOffset">The offset to add.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the addition of byte offset to pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AreSame``1(``0@,``0@)">
|
|
||||||
<summary>Determines whether the specified references point to the same location.</summary>
|
|
||||||
<param name="left">The first reference to compare.</param>
|
|
||||||
<param name="right">The second reference to compare.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>true if <paramref name="left">left</paramref> and <paramref name="right">right</paramref> point to the same location; otherwise, false.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``1(System.Object)">
|
|
||||||
<summary>Casts the given object to the specified type.</summary>
|
|
||||||
<param name="o">The object to cast.</param>
|
|
||||||
<typeparam name="T">The type which the object will be cast to.</typeparam>
|
|
||||||
<returns>The original object, casted to the given type.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.As``2(``0@)">
|
|
||||||
<summary>Reinterprets the given reference as a reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</summary>
|
|
||||||
<param name="source">The reference to reinterpret.</param>
|
|
||||||
<typeparam name="TFrom">The type of reference to reinterpret..</typeparam>
|
|
||||||
<typeparam name="TTo">The desired type of the reference.</typeparam>
|
|
||||||
<returns>A reference to a value of type <typeparamref name="TTo">TTo</typeparamref>.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsPointer``1(``0@)">
|
|
||||||
<summary>Returns a pointer to the given by-ref parameter.</summary>
|
|
||||||
<param name="value">The object whose pointer is obtained.</param>
|
|
||||||
<typeparam name="T">The type of object.</typeparam>
|
|
||||||
<returns>A pointer to the given value.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.AsRef``1(System.Void*)">
|
|
||||||
<summary>Reinterprets the given location as a reference to a value of type <typeparamref name="T">T</typeparamref>.</summary>
|
|
||||||
<param name="source">The location of the value to reference.</param>
|
|
||||||
<typeparam name="T">The type of the interpreted location.</typeparam>
|
|
||||||
<returns>A reference to a value of type <typeparamref name="T">T</typeparamref>.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ByteOffset``1(``0@,``0@)">
|
|
||||||
<summary>Determines the byte offset from origin to target from the given references.</summary>
|
|
||||||
<param name="origin">The reference to origin.</param>
|
|
||||||
<param name="target">The reference to target.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>Byte offset from origin to target i.e. <paramref name="target">target</paramref> - <paramref name="origin">origin</paramref>.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(System.Void*,``0@)">
|
|
||||||
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
|
||||||
<param name="destination">The location to copy to.</param>
|
|
||||||
<param name="source">A reference to the value to copy.</param>
|
|
||||||
<typeparam name="T">The type of value to copy.</typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Copy``1(``0@,System.Void*)">
|
|
||||||
<summary>Copies a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
|
||||||
<param name="destination">The location to copy to.</param>
|
|
||||||
<param name="source">A pointer to the value to copy.</param>
|
|
||||||
<typeparam name="T">The type of value to copy.</typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Byte@,System.Byte@,System.UInt32)">
|
|
||||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
|
||||||
<param name="destination">The destination address to copy to.</param>
|
|
||||||
<param name="source">The source address to copy from.</param>
|
|
||||||
<param name="byteCount">The number of bytes to copy.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlock(System.Void*,System.Void*,System.UInt32)">
|
|
||||||
<summary>Copies bytes from the source address to the destination address.</summary>
|
|
||||||
<param name="destination">The destination address to copy to.</param>
|
|
||||||
<param name="source">The source address to copy from.</param>
|
|
||||||
<param name="byteCount">The number of bytes to copy.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Void*,System.Void*,System.UInt32)">
|
|
||||||
<summary>Copies bytes from the source address to the destination address
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="destination">The destination address to copy to.</param>
|
|
||||||
<param name="source">The source address to copy from.</param>
|
|
||||||
<param name="byteCount">The number of bytes to copy.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.CopyBlockUnaligned(System.Byte@,System.Byte@,System.UInt32)">
|
|
||||||
<summary>Copies bytes from the source address to the destination address
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="destination">The destination address to copy to.</param>
|
|
||||||
<param name="source">The source address to copy from.</param>
|
|
||||||
<param name="byteCount">The number of bytes to copy.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Byte@,System.Byte,System.UInt32)">
|
|
||||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
|
||||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
|
||||||
<param name="value">The value to initialize the block to.</param>
|
|
||||||
<param name="byteCount">The number of bytes to initialize.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlock(System.Void*,System.Byte,System.UInt32)">
|
|
||||||
<summary>Initializes a block of memory at the given location with a given initial value.</summary>
|
|
||||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
|
||||||
<param name="value">The value to initialize the block to.</param>
|
|
||||||
<param name="byteCount">The number of bytes to initialize.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Byte@,System.Byte,System.UInt32)">
|
|
||||||
<summary>Initializes a block of memory at the given location with a given initial value
|
|
||||||
without assuming architecture dependent alignment of the address.</summary>
|
|
||||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
|
||||||
<param name="value">The value to initialize the block to.</param>
|
|
||||||
<param name="byteCount">The number of bytes to initialize.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.InitBlockUnaligned(System.Void*,System.Byte,System.UInt32)">
|
|
||||||
<summary>Initializes a block of memory at the given location with a given initial value
|
|
||||||
without assuming architecture dependent alignment of the address.</summary>
|
|
||||||
<param name="startAddress">The address of the start of the memory block to initialize.</param>
|
|
||||||
<param name="value">The value to initialize the block to.</param>
|
|
||||||
<param name="byteCount">The number of bytes to initialize.</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Read``1(System.Void*)">
|
|
||||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location.</summary>
|
|
||||||
<param name="source">The location to read from.</param>
|
|
||||||
<typeparam name="T">The type to read.</typeparam>
|
|
||||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Byte@)">
|
|
||||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="source">The location to read from.</param>
|
|
||||||
<typeparam name="T">The type to read.</typeparam>
|
|
||||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.ReadUnaligned``1(System.Void*)">
|
|
||||||
<summary>Reads a value of type <typeparamref name="T">T</typeparamref> from the given location
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="source">The location to read from.</param>
|
|
||||||
<typeparam name="T">The type to read.</typeparam>
|
|
||||||
<returns>An object of type <typeparamref name="T">T</typeparamref> read from the given location.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SizeOf``1">
|
|
||||||
<summary>Returns the size of an object of the given type parameter.</summary>
|
|
||||||
<typeparam name="T">The type of object whose size is retrieved.</typeparam>
|
|
||||||
<returns>The size of an object of type <typeparamref name="T">T</typeparamref>.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.Int32)">
|
|
||||||
<summary>Subtracts an element offset from the given reference.</summary>
|
|
||||||
<param name="source">The reference to subtract the offset from.</param>
|
|
||||||
<param name="elementOffset">The offset to subtract.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Subtract``1(``0@,System.IntPtr)">
|
|
||||||
<summary>Subtracts an element offset from the given reference.</summary>
|
|
||||||
<param name="source">The reference to subtract the offset from.</param>
|
|
||||||
<param name="elementOffset">The offset to subtract.</param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the subraction of offset from pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.SubtractByteOffset``1(``0@,System.IntPtr)">
|
|
||||||
<summary>Subtracts a byte offset from the given reference.</summary>
|
|
||||||
<param name="source">The reference to subtract the offset from.</param>
|
|
||||||
<param name="byteOffset"></param>
|
|
||||||
<typeparam name="T">The type of reference.</typeparam>
|
|
||||||
<returns>A new reference that reflects the subraction of byte offset from pointer.</returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.Write``1(System.Void*,``0)">
|
|
||||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location.</summary>
|
|
||||||
<param name="destination">The location to write to.</param>
|
|
||||||
<param name="value">The value to write.</param>
|
|
||||||
<typeparam name="T">The type of value to write.</typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Byte@,``0)">
|
|
||||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="destination">The location to write to.</param>
|
|
||||||
<param name="value">The value to write.</param>
|
|
||||||
<typeparam name="T">The type of value to write.</typeparam>
|
|
||||||
</member>
|
|
||||||
<member name="M:System.Runtime.CompilerServices.Unsafe.WriteUnaligned``1(System.Void*,``0)">
|
|
||||||
<summary>Writes a value of type <typeparamref name="T">T</typeparamref> to the given location
|
|
||||||
without assuming architecture dependent alignment of the addresses.</summary>
|
|
||||||
<param name="destination">The location to write to.</param>
|
|
||||||
<param name="value">The value to write.</param>
|
|
||||||
<typeparam name="T">The type of value to write.</typeparam>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4550353da13e98b4d8fa8a94c97a4067
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,384 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!29 &1
|
|
||||||
OcclusionCullingSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_OcclusionBakeSettings:
|
|
||||||
smallestOccluder: 5
|
|
||||||
smallestHole: 0.25
|
|
||||||
backfaceThreshold: 100
|
|
||||||
m_SceneGUID: 00000000000000000000000000000000
|
|
||||||
m_OcclusionCullingData: {fileID: 0}
|
|
||||||
--- !u!104 &2
|
|
||||||
RenderSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 9
|
|
||||||
m_Fog: 0
|
|
||||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
|
||||||
m_FogMode: 3
|
|
||||||
m_FogDensity: 0.01
|
|
||||||
m_LinearFogStart: 0
|
|
||||||
m_LinearFogEnd: 300
|
|
||||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
|
||||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
|
||||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
|
||||||
m_AmbientIntensity: 1
|
|
||||||
m_AmbientMode: 0
|
|
||||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
|
||||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_HaloStrength: 0.5
|
|
||||||
m_FlareStrength: 1
|
|
||||||
m_FlareFadeSpeed: 3
|
|
||||||
m_HaloTexture: {fileID: 0}
|
|
||||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_DefaultReflectionMode: 0
|
|
||||||
m_DefaultReflectionResolution: 128
|
|
||||||
m_ReflectionBounces: 1
|
|
||||||
m_ReflectionIntensity: 1
|
|
||||||
m_CustomReflection: {fileID: 0}
|
|
||||||
m_Sun: {fileID: 0}
|
|
||||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
|
||||||
m_UseRadianceAmbientProbe: 0
|
|
||||||
--- !u!157 &3
|
|
||||||
LightmapSettings:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 11
|
|
||||||
m_GIWorkflowMode: 1
|
|
||||||
m_GISettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_BounceScale: 1
|
|
||||||
m_IndirectOutputScale: 1
|
|
||||||
m_AlbedoBoost: 1
|
|
||||||
m_EnvironmentLightingMode: 0
|
|
||||||
m_EnableBakedLightmaps: 1
|
|
||||||
m_EnableRealtimeLightmaps: 0
|
|
||||||
m_LightmapEditorSettings:
|
|
||||||
serializedVersion: 12
|
|
||||||
m_Resolution: 2
|
|
||||||
m_BakeResolution: 40
|
|
||||||
m_AtlasSize: 1024
|
|
||||||
m_AO: 0
|
|
||||||
m_AOMaxDistance: 1
|
|
||||||
m_CompAOExponent: 1
|
|
||||||
m_CompAOExponentDirect: 0
|
|
||||||
m_ExtractAmbientOcclusion: 0
|
|
||||||
m_Padding: 2
|
|
||||||
m_LightmapParameters: {fileID: 0}
|
|
||||||
m_LightmapsBakeMode: 1
|
|
||||||
m_TextureCompression: 1
|
|
||||||
m_FinalGather: 0
|
|
||||||
m_FinalGatherFiltering: 1
|
|
||||||
m_FinalGatherRayCount: 256
|
|
||||||
m_ReflectionCompression: 2
|
|
||||||
m_MixedBakeMode: 2
|
|
||||||
m_BakeBackend: 1
|
|
||||||
m_PVRSampling: 1
|
|
||||||
m_PVRDirectSampleCount: 32
|
|
||||||
m_PVRSampleCount: 512
|
|
||||||
m_PVRBounces: 2
|
|
||||||
m_PVREnvironmentSampleCount: 256
|
|
||||||
m_PVREnvironmentReferencePointCount: 2048
|
|
||||||
m_PVRFilteringMode: 1
|
|
||||||
m_PVRDenoiserTypeDirect: 1
|
|
||||||
m_PVRDenoiserTypeIndirect: 1
|
|
||||||
m_PVRDenoiserTypeAO: 1
|
|
||||||
m_PVRFilterTypeDirect: 0
|
|
||||||
m_PVRFilterTypeIndirect: 0
|
|
||||||
m_PVRFilterTypeAO: 0
|
|
||||||
m_PVREnvironmentMIS: 1
|
|
||||||
m_PVRCulling: 1
|
|
||||||
m_PVRFilteringGaussRadiusDirect: 1
|
|
||||||
m_PVRFilteringGaussRadiusIndirect: 5
|
|
||||||
m_PVRFilteringGaussRadiusAO: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
|
||||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
|
||||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
|
||||||
m_ExportTrainingData: 0
|
|
||||||
m_TrainingDataDestination: TrainingData
|
|
||||||
m_LightProbeSampleCountMultiplier: 4
|
|
||||||
m_LightingDataAsset: {fileID: 0}
|
|
||||||
m_UseShadowmask: 1
|
|
||||||
--- !u!196 &4
|
|
||||||
NavMeshSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_BuildSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
agentTypeID: 0
|
|
||||||
agentRadius: 0.5
|
|
||||||
agentHeight: 2
|
|
||||||
agentSlope: 45
|
|
||||||
agentClimb: 0.4
|
|
||||||
ledgeDropHeight: 0
|
|
||||||
maxJumpAcrossDistance: 0
|
|
||||||
minRegionArea: 2
|
|
||||||
manualCellSize: 0
|
|
||||||
cellSize: 0.16666667
|
|
||||||
manualTileSize: 0
|
|
||||||
tileSize: 256
|
|
||||||
accuratePlacement: 0
|
|
||||||
debug:
|
|
||||||
m_Flags: 0
|
|
||||||
m_NavMeshData: {fileID: 0}
|
|
||||||
--- !u!1 &722190521
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 722190523}
|
|
||||||
- component: {fileID: 722190522}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Directional Light
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!108 &722190522
|
|
||||||
Light:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 722190521}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 10
|
|
||||||
m_Type: 1
|
|
||||||
m_Shape: 0
|
|
||||||
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
|
|
||||||
m_Intensity: 1
|
|
||||||
m_Range: 10
|
|
||||||
m_SpotAngle: 30
|
|
||||||
m_InnerSpotAngle: 21.80208
|
|
||||||
m_CookieSize: 10
|
|
||||||
m_Shadows:
|
|
||||||
m_Type: 2
|
|
||||||
m_Resolution: -1
|
|
||||||
m_CustomResolution: -1
|
|
||||||
m_Strength: 1
|
|
||||||
m_Bias: 0.05
|
|
||||||
m_NormalBias: 0.4
|
|
||||||
m_NearPlane: 0.2
|
|
||||||
m_CullingMatrixOverride:
|
|
||||||
e00: 1
|
|
||||||
e01: 0
|
|
||||||
e02: 0
|
|
||||||
e03: 0
|
|
||||||
e10: 0
|
|
||||||
e11: 1
|
|
||||||
e12: 0
|
|
||||||
e13: 0
|
|
||||||
e20: 0
|
|
||||||
e21: 0
|
|
||||||
e22: 1
|
|
||||||
e23: 0
|
|
||||||
e30: 0
|
|
||||||
e31: 0
|
|
||||||
e32: 0
|
|
||||||
e33: 1
|
|
||||||
m_UseCullingMatrixOverride: 0
|
|
||||||
m_Cookie: {fileID: 0}
|
|
||||||
m_DrawHalo: 0
|
|
||||||
m_Flare: {fileID: 0}
|
|
||||||
m_RenderMode: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingLayerMask: 1
|
|
||||||
m_Lightmapping: 4
|
|
||||||
m_LightShadowCasterMode: 0
|
|
||||||
m_AreaSize: {x: 1, y: 1}
|
|
||||||
m_BounceIntensity: 1
|
|
||||||
m_ColorTemperature: 6570
|
|
||||||
m_UseColorTemperature: 0
|
|
||||||
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_UseBoundingSphereOverride: 0
|
|
||||||
m_ShadowRadius: 0
|
|
||||||
m_ShadowAngle: 0
|
|
||||||
--- !u!4 &722190523
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 722190521}
|
|
||||||
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
|
|
||||||
--- !u!1 &929006872
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 929006873}
|
|
||||||
- component: {fileID: 929006874}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &929006873
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 929006872}
|
|
||||||
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: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 2
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &929006874
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 929006872}
|
|
||||||
m_Enabled: 0
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 9cd86f429bda8b54491fe8ca650b4efa, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &1140885832
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1140885835}
|
|
||||||
- component: {fileID: 1140885834}
|
|
||||||
- component: {fileID: 1140885833}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Main Camera
|
|
||||||
m_TagString: MainCamera
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!81 &1140885833
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1140885832}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!20 &1140885834
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1140885832}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FOVAxisMode: 0
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: -1
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!4 &1140885835
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1140885832}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 1, z: -10}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!1 &1321805467
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1321805468}
|
|
||||||
- component: {fileID: 1321805469}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject (1)
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1321805468
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1321805467}
|
|
||||||
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: []
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_RootOrder: 3
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &1321805469
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1321805467}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 704cf15a4f065de46ac4a78fcc39b500, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 71fb536dfa2527442a9a70ae0a41e861
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,43 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Net;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Kcp;
|
|
||||||
using TEngine;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class TestClient : MonoBehaviour
|
|
||||||
{
|
|
||||||
static IPEndPoint end = new System.Net.IPEndPoint(System.Net.IPAddress.Loopback, 40001);
|
|
||||||
private KcpClient kcpClient;
|
|
||||||
private Task task;
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
kcpClient = new KcpClient(50001, end);
|
|
||||||
task = Task.Run(async () =>
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
kcpClient.kcp.Update(DateTime.UtcNow);
|
|
||||||
await Task.Delay(10);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
static async void Send(KcpClient client, string v)
|
|
||||||
{
|
|
||||||
var buffer = System.Text.Encoding.UTF8.GetBytes(v);
|
|
||||||
client.SendAsync(buffer, buffer.Length);
|
|
||||||
var resp = await client.ReceiveAsync();
|
|
||||||
var respstr = System.Text.Encoding.UTF8.GetString(resp);
|
|
||||||
TLogger.LogError($"收到服务器回复: {respstr}");
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (Input.GetKeyDown(KeyCode.Space))
|
|
||||||
{
|
|
||||||
TLogger.LogError($"发送一条消息");
|
|
||||||
Send(kcpClient, "发送一条消息");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 704cf15a4f065de46ac4a78fcc39b500
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@@ -1,38 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Kcp;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
public class TestServer : MonoBehaviour
|
|
||||||
{
|
|
||||||
void Start()
|
|
||||||
{
|
|
||||||
KcpClient kcpClient = new KcpClient(40001);
|
|
||||||
Task.Run(async () =>
|
|
||||||
{
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
kcpClient.kcp.Update(DateTime.UtcNow);
|
|
||||||
await Task.Delay(10);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
StartRecv(kcpClient);
|
|
||||||
}
|
|
||||||
|
|
||||||
static async void StartRecv(KcpClient client)
|
|
||||||
{
|
|
||||||
var res = await client.ReceiveAsync();
|
|
||||||
StartRecv(client);
|
|
||||||
|
|
||||||
await Task.Delay(1);
|
|
||||||
var str = System.Text.Encoding.UTF8.GetString(res);
|
|
||||||
if ("发送一条消息" == str)
|
|
||||||
{
|
|
||||||
Console.WriteLine(str);
|
|
||||||
|
|
||||||
var buffer = System.Text.Encoding.UTF8.GetBytes("回复一条消息");
|
|
||||||
client.SendAsync(buffer, buffer.Length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 9cd86f429bda8b54491fe8ca650b4efa
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Reference in New Issue
Block a user