Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000000..e69de29bb2d diff --git a/404.html b/404.html new file mode 100644 index 00000000000..f290b930b3c --- /dev/null +++ b/404.html @@ -0,0 +1,17 @@ + + +
+ + + +We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
["'])(?.*?)\1/,he=/\{(? [\d,-]+)\}/,ge={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function ve(e,t){const n=e.map((e=>{const{start:n,end:a}=ge[e];return"(?:"+n+"\\s*("+t.flatMap((e=>{var t,n;return[e.line,null==(t=e.block)?void 0:t.start,null==(n=e.block)?void 0:n.end].filter(Boolean)})).join("|")+")\\s*"+a+")"})).join("|");return new RegExp("^\\s*(?:"+n+")\\s*$")}function be(e,t){let n=e.replace(/\n$/,"");const{language:a,magicComments:l,metastring:r}=t;if(r&&he.test(r)){const e=r.match(he).groups.range;if(0===l.length)throw new Error("A highlight range has been given in code block's metastring (``` "+r+"), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.");const t=l[0].className,a=pe()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(a),code:n}}if(void 0===a)return{lineClassNames:{},code:n};const o=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return ve(["js","jsBlock"],t);case"jsx":case"tsx":return ve(["js","jsBlock","jsx"],t);case"html":return ve(["js","jsBlock","html"],t);case"python":case"py":case"bash":return ve(["bash"],t);case"markdown":case"md":return ve(["html","jsx","bash"],t);default:return ve(Object.keys(ge),t)}}(a,l),c=n.split("\n"),s=Object.fromEntries(l.map((e=>[e.className,{start:0,range:""}]))),i=Object.fromEntries(l.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),m=Object.fromEntries(l.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),d=Object.fromEntries(l.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p void 0!==e));i[t]?s[i[t]].range+=p+",":m[t]?s[m[t]].start=p:d[t]&&(s[d[t]].range+=s[d[t]].start+"-"+(p-1)+","),c.splice(p,1)}n=c.join("\n");const u={};return Object.entries(s).forEach((e=>{let[t,{range:n}]=e;pe()(n).forEach((e=>{null!=u[e]||(u[e]=[]),u[e].push(t)}))})),{lineClassNames:u,code:n}}const Ee="codeBlockContainer_Ckt0";function ye(e){let{as:t,...n}=e;const l=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[a,l]=e;const r=t[a];r&&"string"==typeof l&&(n[r]=l)})),n}(de());return a.createElement(t,(0,k.Z)({},n,{style:l,className:(0,m.Z)(n.className,Ee,g.k.common.codeBlock)}))}const ke={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function Ne(e){let{children:t,className:n}=e;return a.createElement(ye,{as:"pre",tabIndex:0,className:(0,m.Z)(ke.codeBlockStandalone,"thin-scrollbar",n)},a.createElement("code",{className:ke.codeBlockLines},t))}const Le={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ce(e,t){const[n,l]=(0,a.useState)(),o=(0,a.useCallback)((()=>{var t;l(null==(t=e.current)?void 0:t.closest("[role=tabpanel][hidden]"))}),[e,l]);(0,a.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Le);const l=(0,r.zX)(t),o=(0,r.Ql)(n);(0,a.useEffect)((()=>{const t=new MutationObserver(l);return e&&t.observe(e,o),()=>t.disconnect()}),[e,l,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const Ze={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var _e={Prism:n(87410).Z,theme:Ze};function Te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function we(){return we=Object.assign||function(e){for(var t=1;t 0&&e[n-1]===t?e:e.concat(t)},Ae=function(e,t){var n=e.plain,a=Object.create(null),l=e.styles.reduce((function(e,n){var a=n.languages,l=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=we({},e[t],l);e[t]=n})),e}),a);return l.root=n,l.plain=we({},n,{backgroundColor:null}),l};function He(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}const je=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),Te(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?Ae(e.theme,e.language):void 0;return t.themeDict=n})),Te(this,"getLineProps",(function(e){var n=e.key,a=e.className,l=e.style,r=we({},He(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),o=t.getThemeDict(t.props);return void 0!==o&&(r.style=o.plain),void 0!==l&&(r.style=void 0!==r.style?we({},r.style,l):l),void 0!==n&&(r.key=n),a&&(r.className+=" "+a),r})),Te(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,l=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===l&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===l&&!a)return r[n[0]];var o=a?{display:"inline-block"}:{},c=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[o].concat(c))}})),Te(this,"getTokenProps",(function(e){var n=e.key,a=e.className,l=e.style,r=e.token,o=we({},He(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==l&&(o.style=void 0!==o.style?we({},o.style,l):l),void 0!==n&&(o.key=n),a&&(o.className+=" "+a),o})),Te(this,"tokenize",(function(e,t,n,a){var l={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",l);var r=l.tokens=e.tokenize(l.code,l.grammar,l.language);return e.hooks.run("after-tokenize",l),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,l=e.children,r=this.getThemeDict(this.props),o=t.languages[n];return l({tokens:function(e){for(var t=[[]],n=[e],a=[0],l=[e.length],r=0,o=0,c=[],s=[c];o>-1;){for(;(r=a[o]++) 0?m:["plain"],i=d):(m=Oe(m,d.type),d.alias&&(m=Oe(m,d.alias)),i=d.content),"string"==typeof i){var u=i.split(xe),p=u.length;c.push({types:m,content:u[0]});for(var f=1;f a.createElement("span",(0,k.Z)({key:t},o({token:e,key:t})))));return a.createElement("span",c,l?a.createElement(a.Fragment,null,a.createElement("span",{className:Me}),a.createElement("span",{className:Ie},s)):a.createElement(a.Fragment,null,s,a.createElement("br",null)))}const Ue={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function ze(e){let{code:t,className:n}=e;const[l,r]=(0,a.useState)(!1),o=(0,a.useRef)(void 0),c=(0,a.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;const a=document.createElement("textarea"),l=document.activeElement;a.value=e,a.setAttribute("readonly",""),a.style.contain="strict",a.style.position="absolute",a.style.left="-9999px",a.style.fontSize="12pt";const r=document.getSelection();let o=!1;r.rangeCount>0&&(o=r.getRangeAt(0)),n.append(a),a.select(),a.selectionStart=0,a.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}a.remove(),o&&(r.removeAllRanges(),r.addRange(o)),l&&l.focus()}(t),r(!0),o.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,a.useEffect)((()=>()=>window.clearTimeout(o.current)),[]),a.createElement("button",{type:"button","aria-label":l?(0,v.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,v.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,v.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,m.Z)("clean-btn",n,Ue.copyButton,l&&Ue.copyButtonCopied),onClick:c},a.createElement("span",{className:Ue.copyButtonIcons,"aria-hidden":"true"},a.createElement("svg",{className:Ue.copyButtonIcon,viewBox:"0 0 24 24"},a.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),a.createElement("svg",{className:Ue.copyButtonSuccessIcon,viewBox:"0 0 24 24"},a.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}const Ve="wordWrapButtonIcon_Bwma",De="wordWrapButtonEnabled_EoeP";function Re(e){let{className:t,onClick:n,isEnabled:l}=e;const r=(0,v.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,m.Z)("clean-btn",t,l&&De),"aria-label":r,title:r},a.createElement("svg",{className:Ve,viewBox:"0 0 24 24","aria-hidden":"true"},a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function We(e){var t;let{children:n,className:l="",metastring:r,title:o,showLineNumbers:c,language:s}=e;const{prism:{defaultLanguage:i,magicComments:d}}=(0,P.L)(),u=null!=(t=null!=s?s:function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return null==t?void 0:t.replace(/language-/,"")}(l))?t:i,p=de(),f=function(){const[e,t]=(0,a.useState)(!1),[n,l]=(0,a.useState)(!1),r=(0,a.useRef)(null),o=(0,a.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),c=(0,a.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");l(n)}),[r]);return Ce(r,c),(0,a.useEffect)((()=>{c()}),[e,c]),(0,a.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:o}}(),h=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(fe))?void 0:n.groups.title)?t:""}(r)||o,{lineClassNames:g,code:v}=be(n,{metastring:r,language:u,magicComments:d}),b=null!=c?c:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(r);return a.createElement(ye,{as:"div",className:(0,m.Z)(l,u&&!l.includes("language-"+u)&&"language-"+u)},h&&a.createElement("div",{className:ke.codeBlockTitle},h),a.createElement("div",{className:ke.codeBlockContent},a.createElement(je,(0,k.Z)({},_e,{theme:p,code:v,language:null!=u?u:"text"}),(e=>{let{className:t,tokens:n,getLineProps:l,getTokenProps:r}=e;return a.createElement("pre",{tabIndex:0,ref:f.codeBlockRef,className:(0,m.Z)(t,ke.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,m.Z)(ke.codeBlockLines,b&&ke.codeBlockLinesWithNumbering)},n.map(((e,t)=>a.createElement(Pe,{key:t,line:e,getLineProps:l,getTokenProps:r,classNames:g[t],showLineNumbers:b})))))})),a.createElement("div",{className:ke.buttonGroup},(f.isEnabled||f.isCodeScrollable)&&a.createElement(Re,{className:ke.codeButton,onClick:()=>f.toggle(),isEnabled:f.isEnabled}),a.createElement(ze,{className:ke.codeButton,code:v}))))}function Fe(e){let{children:t,...n}=e;const l=(0,ie.Z)(),r=function(e){return a.Children.toArray(e).some((e=>(0,a.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),o="string"==typeof r?We:Ne;return a.createElement(o,(0,k.Z)({key:String(l)},n),r)}const qe="details_lb9f",Ge="isBrowser_bmU9",$e="collapsibleContent_i85q";function Je(e){return!!e&&("SUMMARY"===e.tagName||Je(e.parentElement))}function Qe(e,t){return!!e&&(e===t||Qe(e.parentElement,t))}function Xe(e){let{summary:t,children:n,...l}=e;const r=(0,ie.Z)(),o=(0,a.useRef)(null),{collapsed:c,setCollapsed:s}=(0,I.u)({initialState:!l.open}),[i,d]=(0,a.useState)(l.open);return a.createElement("details",(0,k.Z)({},l,{ref:o,open:i,"data-collapsed":c,className:(0,m.Z)(qe,r&&Ge,l.className),onMouseDown:e=>{Je(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Je(t)&&Qe(t,o.current)&&(e.preventDefault(),c?(s(!1),d(!0)):s(!0))}}),null!=t?t:a.createElement("summary",null,"Details"),a.createElement(I.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{s(e),d(!e)}},a.createElement("div",{className:$e},n)))}const Ye="details_b_Ee";function Ke(e){let{...t}=e;return a.createElement(Xe,(0,k.Z)({},t,{className:(0,m.Z)("alert alert--info",Ye,t.className)}))}function et(e){return a.createElement(oe.Z,e)}const tt="containsTaskList_mC6p";const nt="img_ev3q";const at="admonition_LlT9",lt="admonitionHeading_tbUL",rt="admonitionIcon_kALy",ot="admonitionContent_S0QG";const ct={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(v.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(v.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(v.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(v.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(v.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},st={secondary:"note",important:"info",success:"tip",warning:"danger"};function it(e){var t;const{mdxAdmonitionTitle:n,rest:l}=function(e){const t=a.Children.toArray(e),n=t.find((e=>{var t;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(t=e.props)?void 0:t.mdxType)})),l=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n,rest:l}}(e.children);return{...e,title:null!=(t=e.title)?t:n,children:l}}const mt={head:function(e){const t=a.Children.map(e.children,(e=>a.isValidElement(e)?function(e){var t;if(null!=(t=e.props)&&t.mdxType&&e.props.originalType){const{mdxType:t,originalType:n,...l}=e.props;return a.createElement(e.props.originalType,l)}return e}(e):e));return a.createElement(se.Z,e,t)},code:function(e){const t=["a","b","big","i","span","em","strong","sup","sub","small"];return a.Children.toArray(e.children).every((e=>{var n;return"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(null==(n=e.props)?void 0:n.mdxType)}))?a.createElement("code",e):a.createElement(Fe,e)},a:function(e){return a.createElement(Z.Z,e)},pre:function(e){var t;return a.createElement(Fe,(0,a.isValidElement)(e.children)&&"code"===(null==(t=e.children.props)?void 0:t.originalType)?e.children.props:{...e})},details:function(e){const t=a.Children.toArray(e.children),n=t.find((e=>{var t;return a.isValidElement(e)&&"summary"===(null==(t=e.props)?void 0:t.mdxType)})),l=a.createElement(a.Fragment,null,t.filter((e=>e!==n)));return a.createElement(Ke,(0,k.Z)({},e,{summary:n}),l)},ul:function(e){return a.createElement("ul",(0,k.Z)({},e,{className:(t=e.className,(0,m.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&tt))}));var t},img:function(e){return a.createElement("img",(0,k.Z)({loading:"lazy"},e,{className:(t=e.className,(0,m.Z)(t,nt))}));var t},h1:e=>a.createElement(et,(0,k.Z)({as:"h1"},e)),h2:e=>a.createElement(et,(0,k.Z)({as:"h2"},e)),h3:e=>a.createElement(et,(0,k.Z)({as:"h3"},e)),h4:e=>a.createElement(et,(0,k.Z)({as:"h4"},e)),h5:e=>a.createElement(et,(0,k.Z)({as:"h5"},e)),h6:e=>a.createElement(et,(0,k.Z)({as:"h6"},e)),admonition:function(e){const{children:t,type:n,title:l,icon:r}=it(e),o=function(e){var t;const n=null!=(t=st[e])?t:e;return ct[n]||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),ct.info)}(n),c=null!=l?l:o.label,{iconComponent:s}=o,i=null!=r?r:a.createElement(s,null);return a.createElement("div",{className:(0,m.Z)(g.k.common.admonition,g.k.common.admonitionType(e.type),"alert","alert--"+o.infimaClassName,at)},a.createElement("div",{className:lt},a.createElement("span",{className:rt},i),c),a.createElement("div",{className:ot},t))}};function dt(e){let{children:t}=e;return a.createElement(ce.Zo,{components:mt},t)}function ut(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=s();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,m.Z)(g.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(oe.Z,{as:"h1"},n)),a.createElement(dt,null,t))}var pt=n(31986);const ft="docItemContainer_Djhp",ht="docItemCol_VOVn";function gt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=s(),n=(0,d.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(ne,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(re,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,m.Z)("col",!n.hidden&&ht)},a.createElement(f.Z,null),a.createElement("div",{className:ft},a.createElement("article",null,a.createElement(pt.Z,null),a.createElement(h.Z,null),n.mobile,a.createElement(ut,null,t),a.createElement(M,null)),a.createElement(p,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function vt(e){const t="docs-doc-id-"+e.content.metadata.unversionedId,n=e.content;return a.createElement(c,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement(gt,null,a.createElement(n,null))))}},4966:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var a=n(87462),l=n(67294),r=n(95999),o=n(86010),c=n(39960);function s(e){const{permalink:t,title:n,subLabel:a,isNext:r}=e;return l.createElement(c.Z,{className:(0,o.Z)("pagination-nav__link",r?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},a&&l.createElement("div",{className:"pagination-nav__sublabel"},a),l.createElement("div",{className:"pagination-nav__label"},n))}function i(e){const{previous:t,next:n}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&l.createElement(s,(0,a.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&l.createElement(s,(0,a.Z)({},n,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},44364:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var a=n(67294),l=n(86010),r=n(95999),o=n(35281),c=n(74477);function s(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,l.Z)(t,o.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},23120:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var a=n(67294),l=n(86010),r=n(52263),o=n(39960),c=n(95999),s=n(94104),i=n(35281),m=n(60373),d=n(74477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function p(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function f(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(o.Z,{to:n,onClick:l},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function h(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,r.Z)(),{pluginId:c}=(0,s.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:h}=(0,s.Jo)(c),g=null!=u?u:(v=h).docs.find((e=>e.id===v.mainDocId));var v;return a.createElement("div",{className:(0,l.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(p,{siteTitle:o,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(f,{versionLabel:h.label,to:g.path,onClick:()=>d(h.name)})))}function g(e){let{className:t}=e;const n=(0,d.E)();return n.banner?a.createElement(h,{className:t,versionMetadata:n}):null}},92503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var a=n(87462),l=n(67294),r=n(86010),o=n(95999),c=n(86668);const s="anchorWithStickyNavbar_LWe7",i="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:t,id:n,...m}=e;const{navbar:{hideOnScroll:d}}=(0,c.L)();return"h1"!==t&&n?l.createElement(t,(0,a.Z)({},m,{className:(0,r.Z)("anchor",d?i:s),id:n}),m.children,l.createElement("a",{className:"hash-link",href:"#"+n,title:(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):l.createElement(t,(0,a.Z)({},m,{id:void 0}))}},87594:(e,t)=>{function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,l,r]=t;if(a&&r){a=parseInt(a),r=parseInt(r);const e=a
{n.d(t,{Zo:()=>p,kt:()=>m});var i=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function l(e){for(var t=1;t =0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i =0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=i.createContext({}),d=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=d(e.components);return i.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=d(n),m=a,y=c["".concat(s,".").concat(m)]||c[m]||u[m]||r;return n?i.createElement(y,l(l({ref:t},p),{},{components:n})):i.createElement(y,l({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,l=new Array(r);l[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:a,l[1]=o;for(var d=2;d {n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var i=n(87462),a=(n(67294),n(3905));const r={sidebar_position:3},l="Advanced Serialization",o={unversionedId:"guides/serialization/advanced",id:"guides/serialization/advanced",title:"Advanced Serialization",description:"This page goes into depth about Serialization, for the basics see Data Types.",source:"@site/docs/guides/serialization/advanced.md",sourceDirName:"guides/serialization",slug:"/guides/serialization/advanced",permalink:"/Mirage/docs/guides/serialization/advanced",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/guides/serialization/advanced.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"docs",previous:{title:"Data Types",permalink:"/Mirage/docs/guides/serialization/data-types"},next:{title:"Generics",permalink:"/Mirage/docs/guides/serialization/generics"}},s={},d=[{value:"Rules And Tips",id:"rules-and-tips",level:2},{value:"Unsupported Types",id:"unsupported-types",level:3},{value:"Built-in Read Write Functions",id:"built-in-read-write-functions",level:3},{value:"NetworkIdentity, GameObject, Transform",id:"networkidentity-gameobject-transform",level:4},{value:"Generated Read Write Functions",id:"generated-read-write-functions",level:3},{value:"Classes and Structs",id:"classes-and-structs",level:4},{value:"Enums",id:"enums",level:4},{value:"Collections",id:"collections",level:4},{value:"Adding Custom Read Write functions",id:"adding-custom-read-write-functions",level:2},{value:"Properties Example",id:"properties-example",level:4},{value:"Unsupported type Example",id:"unsupported-type-example",level:4},{value:"Debugging",id:"debugging",level:2}],p={toc:d};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,i.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"advanced-serialization"},"Advanced Serialization"),(0,a.kt)("p",null,"This page goes into depth about Serialization, for the basics see ",(0,a.kt)("a",{parentName:"p",href:"/docs/guides/serialization/data-types"},"Data Types"),"."),(0,a.kt)("p",null,"Mirage creates ",(0,a.kt)("inlineCode",{parentName:"p"},"Serialize")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"Deserialize")," functions for types using Weaver. Weaver edits the dll after unity compiles\nthem using ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/jbevain/cecil"},"Mono.Cecil"),". This allows Mirage to have a lot of complex features like\nSyncVar, ClientRpc, and Message Serialization without the user needing to manually set everything up."),(0,a.kt)("h2",{id:"rules-and-tips"},"Rules And Tips"),(0,a.kt)("p",null,"There are some rules and limits for what Weaver can do. Some features add complexity and are hard to maintain so have\nnot been implemented. These features are not impossible to implement and could be added if there is a high demand for them."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"You should be able to write Custom Read/Write functions for any type, and Weaver will use them.",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"This means if there is an unsupported type like ",(0,a.kt)("inlineCode",{parentName:"li"},"int[][]")," creating a custom Read/Write function will allow you to\nsync ",(0,a.kt)("inlineCode",{parentName:"li"},"int[][]")," in SyncVar/ClientRpc/etc"))),(0,a.kt)("li",{parentName:"ul"},"If you have a type that has a field that is not able to be serialized, you can mark that field with\n",(0,a.kt)("inlineCode",{parentName:"li"},"[System.NonSerialized]")," and weaver will ignore it")),(0,a.kt)("h3",{id:"unsupported-types"},"Unsupported Types"),(0,a.kt)("p",null,"Some of these types are unsupported due to the complexity they would add, as mentioned above."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Types in this list can have custom writers.")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Jagged and Multidimensional array"),(0,a.kt)("li",{parentName:"ul"},"Types that Inherit from ",(0,a.kt)("inlineCode",{parentName:"li"},"UnityEngine.Component")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"UnityEngine.Object")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"UnityEngine.ScriptableObject")),(0,a.kt)("li",{parentName:"ul"},"Generic Types, eg ",(0,a.kt)("inlineCode",{parentName:"li"},"MyData "),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Custom Read/Write must declare T, eg ",(0,a.kt)("inlineCode",{parentName:"li"},"MyData ")))),(0,a.kt)("li",{parentName:"ul"},"Interfaces"),(0,a.kt)("li",{parentName:"ul"},"Types that reference themselves")),(0,a.kt)("h3",{id:"built-in-read-write-functions"},"Built-in Read Write Functions"),(0,a.kt)("p",null,"Mirage provides some built-in Read/Write Functions. They can be found in ",(0,a.kt)("inlineCode",{parentName:"p"},"NetworkReaderExtensions")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"NetworkWriterExtensions"),"."),(0,a.kt)("p",null,"This is a non-compete list of types that have built-in functions, check the classes above to see the full list."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Most ",(0,a.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/built-in-types"},"C# primitive types"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Common Unity structs"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"Vector3"),(0,a.kt)("li",{parentName:"ul"},"Quaternion"),(0,a.kt)("li",{parentName:"ul"},"Rect"),(0,a.kt)("li",{parentName:"ul"},"Ray"),(0,a.kt)("li",{parentName:"ul"},"Guid"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"NetworkIdentity, GameObject, Transform\n"))),(0,a.kt)("h4",{id:"networkidentity-gameobject-transform"},"NetworkIdentity, GameObject, Transform"),(0,a.kt)("p",null,"The ",(0,a.kt)("inlineCode",{parentName:"p"},"NetId")," of the object is sent over the network, and the object with the same ",(0,a.kt)("inlineCode",{parentName:"p"},"NetId")," is returned on the other side.\nIf the ",(0,a.kt)("inlineCode",{parentName:"p"},"NetId")," is zero or an object is not found then ",(0,a.kt)("inlineCode",{parentName:"p"},"null")," will be returned."),(0,a.kt)("h3",{id:"generated-read-write-functions"},"Generated Read Write Functions"),(0,a.kt)("p",null,"Weaver will generate read/write functions for:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Classes or Structs"),(0,a.kt)("li",{parentName:"ul"},"Enums"),(0,a.kt)("li",{parentName:"ul"},"Arrays",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"eg ",(0,a.kt)("inlineCode",{parentName:"li"},"int[]")))),(0,a.kt)("li",{parentName:"ul"},"ArraySegments",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"eg ",(0,a.kt)("inlineCode",{parentName:"li"},"ArraySegment ")))),(0,a.kt)("li",{parentName:"ul"},"Lists",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"eg ",(0,a.kt)("inlineCode",{parentName:"li"},"List "))))),(0,a.kt)("h4",{id:"classes-and-structs"},"Classes and Structs"),(0,a.kt)("p",null,"Weaver will read/write every public field in the type unless the field is marked with ",(0,a.kt)("inlineCode",{parentName:"p"},"[System.NonSerialized]"),".\nIf there is an unsupported type in the class or struct Weaver will fail to make read/write functions for it."),(0,a.kt)("admonition",{type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"The weaver does not check properties")),(0,a.kt)("h4",{id:"enums"},"Enums"),(0,a.kt)("p",null,"Weaver will use the underlying type of an enum to read and write them. By default this is ",(0,a.kt)("inlineCode",{parentName:"p"},"int"),"."),(0,a.kt)("p",null,"For example, ",(0,a.kt)("inlineCode",{parentName:"p"},"Switch")," will use the ",(0,a.kt)("inlineCode",{parentName:"p"},"byte")," read/write functions to be serialized"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public enum Switch : byte\n{\n Left,\n Middle,\n Right,\n}\n")),(0,a.kt)("h4",{id:"collections"},"Collections"),(0,a.kt)("p",null,"Weaver will generate writes for the collections listed above. Weaver will use the element's read/write function, so it must\nbe a supported type or have a custom read/write function."),(0,a.kt)("p",null,"For example:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"float[]")," is a supported type because Mirage has a built-in read/write function for ",(0,a.kt)("inlineCode",{parentName:"li"},"float"),"."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"MyData[]")," is a supported type as Weaver is able to generate a read/write function for ",(0,a.kt)("inlineCode",{parentName:"li"},"MyData")," ")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public struct MyData\n{\n public int someValue;\n public float anotherValue;\n}\n")),(0,a.kt)("h2",{id:"adding-custom-read-write-functions"},"Adding Custom Read Write functions"),(0,a.kt)("p",null,"Custom read/write functions are static methods like this:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public static void WriteMyType(this NetworkWriter writer, MyType value)\n{\n // write MyType data here\n}\n\npublic static MyType ReadMyType(this NetworkReader reader)\n{\n // read MyType data here\n}\n")),(0,a.kt)("p",null,"It is best practice to make read/write ",(0,a.kt)("a",{parentName:"p",href:"https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/extension-methods"},"extension methods")," so they can be called like ",(0,a.kt)("inlineCode",{parentName:"p"},"writer.WriteMyType(value)"),"."),(0,a.kt)("p",null,"It is a good idea to call them ",(0,a.kt)("inlineCode",{parentName:"p"},"ReadMyType")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"WriteMyType")," so it is obvious what type they are for. However the name of the function doesn't matter, weaver should be able to find it no matter what it is called."),(0,a.kt)("h4",{id:"properties-example"},"Properties Example"),(0,a.kt)("p",null,"Weaver won't write properties, but a custom writer can be used to send them over the network."),(0,a.kt)("p",null,"This can be useful if you want to have ",(0,a.kt)("inlineCode",{parentName:"p"},"private set")," for your properties"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public struct MyData\n{\n public int someValue { get; private set; }\n public float anotherValue { get; private set; }\n\n public MyData(int someValue, float anotherValue)\n {\n this.someValue = someValue;\n this.anotherValue = anotherValue;\n }\n}\n\npublic static class CustomReadWriteFunctions \n{\n public static void WriteMyType(this NetworkWriter writer, MyData value)\n {\n writer.WriteInt32(value.someValue);\n writer.WriteSingle(value.anotherValue);\n }\n\n public static MyData ReadMyType(this NetworkReader reader)\n {\n return new MyData(reader.ReadInt32(), reader.ReadSingle());\n }\n}\n")),(0,a.kt)("h4",{id:"unsupported-type-example"},"Unsupported type Example"),(0,a.kt)("p",null,"Rigidbody is an unsupported type because it inherits from ",(0,a.kt)("inlineCode",{parentName:"p"},"Component"),". But a custom writer can be added so that it is\nsynced using a NetworkIdentity if one is attached."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public struct MyCollision\n{\n public Vector3 force;\n public Rigidbody rigidbody;\n}\n\npublic static class CustomReadWriteFunctions\n{\n public static void WriteMyCollision(this NetworkWriter writer, MyCollision value)\n {\n writer.WriteVector3(value.force);\n\n NetworkIdentity networkIdentity = value.rigidbody.GetComponent ();\n writer.WriteNetworkIdentity(networkIdentity);\n }\n\n public static MyCollision ReadMyCollision(this NetworkReader reader)\n {\n Vector3 force = reader.ReadVector3();\n\n NetworkIdentity networkIdentity = reader.ReadNetworkIdentity();\n Rigidbody rigidBody = networkIdentity != null\n ? networkIdentity.GetComponent ()\n : null;\n\n return new MyCollision\n {\n force = force,\n rigidbody = rigidBody,\n };\n }\n}\n")),(0,a.kt)("p",null,"Above are functions for ",(0,a.kt)("inlineCode",{parentName:"p"},"MyCollision"),", but instead, you could add functions for ",(0,a.kt)("inlineCode",{parentName:"p"},"Rigidbody")," and let weaver would generate a writer for ",(0,a.kt)("inlineCode",{parentName:"p"},"MyCollision"),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public static class CustomReadWriteFunctions\n{\n public static void WriteRigidbody(this NetworkWriter writer, Rigidbody rigidbody)\n {\n NetworkIdentity networkIdentity = rigidbody.GetComponent ();\n writer.WriteNetworkIdentity(networkIdentity);\n }\n\n public static Rigidbody ReadRigidbody(this NetworkReader reader)\n {\n NetworkIdentity networkIdentity = reader.ReadNetworkIdentity();\n Rigidbody rigidBody = networkIdentity != null\n ? networkIdentity.GetComponent ()\n : null;\n\n return rigidBody;\n }\n}\n")),(0,a.kt)("h2",{id:"debugging"},"Debugging"),(0,a.kt)("p",null,"You can use tools like ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/0xd4d/dnSpy"},"dnSpy")," or ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/icsharpcode/ILSpy"},"ILSpy")," to view the complied code after Weaver has altered it. This can help with understanding and debug what Mirage and Weaver does."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/18691bba.7cb8fdd7.js b/assets/js/18691bba.7cb8fdd7.js new file mode 100644 index 00000000000..e6fd1b0a325 --- /dev/null +++ b/assets/js/18691bba.7cb8fdd7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[7706],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t =0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),g=p(r),f=a,d=g["".concat(i,".").concat(f)]||g[f]||u[f]||o;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=g;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:a,l[1]=c;for(var p=2;p {r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(87462),a=(r(67294),r(3905));const o={id:"RpcDelegate",title:"RpcDelegate"},l="Delegate RpcDelegate",c={unversionedId:"reference/Mirage.RemoteCalls/RpcDelegate",id:"reference/Mirage.RemoteCalls/RpcDelegate",title:"RpcDelegate",description:"Delegate for ServerRpc functions.",source:"@site/docs/reference/Mirage.RemoteCalls/RpcDelegate.md",sourceDirName:"reference/Mirage.RemoteCalls",slug:"/reference/Mirage.RemoteCalls/RpcDelegate",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RpcDelegate",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.RemoteCalls/RpcDelegate.md",tags:[],version:"current",frontMatter:{id:"RpcDelegate",title:"RpcDelegate"},sidebar:"api",previous:{title:"RequestDelegate ",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RequestDelegate-1"},next:{title:"RpcInvokeType",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RpcInvokeType"}},i={},p=[{value:"Syntax",id:"syntax",level:5}],s={toc:p};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"delegate-rpcdelegate"},"Delegate RpcDelegate"),(0,a.kt)("p",null,"Delegate for ServerRpc functions."),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public delegate void RpcDelegate(NetworkBehaviour obj, NetworkReader reader, INetworkPlayer senderPlayer, int replyId);\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/18c381f9.7153a423.js b/assets/js/18c381f9.7153a423.js new file mode 100644 index 00000000000..0c753241d3d --- /dev/null +++ b/assets/js/18c381f9.7153a423.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[6812],{3905:(e,r,t)=>{t.d(r,{Zo:()=>u,kt:()=>d});var i=t(67294);function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);r&&(i=i.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,i)}return t}function o(e){for(var r=1;r =0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i =0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}var s=i.createContext({}),c=function(e){var r=i.useContext(s),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},u=function(e){var r=c(e.components);return i.createElement(s.Provider,{value:r},e.children)},k={inlineCode:"code",wrapper:function(e){var r=e.children;return i.createElement(i.Fragment,{},r)}},p=i.forwardRef((function(e,r){var t=e.components,n=e.mdxType,a=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=c(t),d=n,h=p["".concat(s,".").concat(d)]||p[d]||k[d]||a;return t?i.createElement(h,o(o({ref:r},u),{},{components:t})):i.createElement(h,o({ref:r},u))}));function d(e,r){var t=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var a=t.length,o=new Array(a);o[0]=p;var l={};for(var s in r)hasOwnProperty.call(r,s)&&(l[s]=r[s]);l.originalType=e,l.mdxType="string"==typeof e?e:n,o[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>s,contentTitle:()=>o,default:()=>k,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var i=t(87462),n=(t(67294),t(3905));const a={id:"NetworkTransformChild",title:"NetworkTransformChild"},o="Class NetworkTransformChild",l={unversionedId:"reference/Mirage/NetworkTransformChild",id:"reference/Mirage/NetworkTransformChild",title:"NetworkTransformChild",description:"A component to synchronize the position of child transforms of networked objects.",source:"@site/docs/reference/Mirage/NetworkTransformChild.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/NetworkTransformChild",permalink:"/Mirage/docs/reference/Mirage/NetworkTransformChild",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/NetworkTransformChild.md",tags:[],version:"current",frontMatter:{id:"NetworkTransformChild",title:"NetworkTransformChild"},sidebar:"api",previous:{title:"NetworkTransformBase",permalink:"/Mirage/docs/reference/Mirage/NetworkTransformBase"},next:{title:"NetworkVisibility.VisibilityChanged",permalink:"/Mirage/docs/reference/Mirage/NetworkVisibility.VisibilityChanged"}},s={},c=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"Target",id:"target",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Properties",id:"properties",level:3},{value:"TargetComponent",id:"targetcomponent",level:4},{value:"Declaration",id:"declaration-1",level:5}],u={toc:c};function k(e){let{components:r,...t}=e;return(0,n.kt)("wrapper",(0,i.Z)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"class-networktransformchild"},"Class NetworkTransformChild"),(0,n.kt)("p",null,"A component to synchronize the position of child transforms of networked objects.\nThere must be a NetworkTransform on the root object of the hierarchy. There can be multiple NetworkTransformChild components on an object. This does not use physics for synchronization, it simply synchronizes the localPosition and localRotation of the child transform and lerps towards the received values."),(0,n.kt)("div",{class:"inheritance"},(0,n.kt)("h5",{id:"inheritance"},"Inheritance"),(0,n.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object"),(0,n.kt)("div",{class:"level",style:{"--data-index":1}},"Mirage.NetworkBehaviour"),(0,n.kt)("div",{class:"level",style:{"--data-index":2}},"Mirage.NetworkTransformBase")),(0,n.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Show"),(0,n.kt)("p",null,"Mirage.NetworkTransformBase.ClientAuthority"),(0,n.kt)("p",null,"Mirage.NetworkTransformBase.LocalPositionSensitivity"),(0,n.kt)("p",null,"Mirage.NetworkTransformBase.LocalRotationSensitivity"),(0,n.kt)("p",null,"Mirage.NetworkTransformBase.LocalScaleSensitivity"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour._nextSyncTime"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.SyncSettings"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsServer"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsClient"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsLocalClient"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsHost"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsLocalPlayer"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsServerOnly"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.IsClientOnly"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.HasAuthority"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.NetId"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.Server"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.ServerObjectManager"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.Client"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.ClientObjectManager"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.Owner"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.World"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.NetworkTime"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.BehaviourId"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.SyncVarDirtyBits"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.AnySyncObjectDirty"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.syncObjects"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.Identity"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.COMPONENT_INDEX_NOT_FOUND"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.ComponentIndex"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.InitSyncObject(Mirage.Collections.ISyncObject)"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.UpdateSyncObjectShouldSync()"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.SyncVarEqual","<","T",">","(T, T)"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.ClearDirtyBits()"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.AnyDirtyBits()"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.SerializeObjectsAll(Mirage.Serialization.NetworkWriter)"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.SerializeObjectsDelta(Mirage.Serialization.NetworkWriter)"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.GetRpcCount()"),(0,n.kt)("p",null,"Mirage.NetworkBehaviour.RegisterRpc(Mirage.RemoteCalls.RemoteCallCollection)")),(0,n.kt)("h5",{id:"syntax"},"Syntax"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public class NetworkTransformChild : NetworkTransformBase\n")),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"target"},"Target"),(0,n.kt)("h5",{id:"declaration"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public Transform Target\n")),(0,n.kt)("h3",{id:"properties"},"Properties"),(0,n.kt)("h4",{id:"targetcomponent"},"TargetComponent"),(0,n.kt)("h5",{id:"declaration-1"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected override Transform TargetComponent { get; }\n")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/198a2045.41142769.js b/assets/js/198a2045.41142769.js new file mode 100644 index 00000000000..1983aedf5b6 --- /dev/null +++ b/assets/js/198a2045.41142769.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[7608],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>c});var l=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,l)}return a}function i(e){for(var t=1;t =0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(l=0;l =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var m=l.createContext({}),p=function(e){var t=l.useContext(m),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},o=function(e){var t=p(e.components);return l.createElement(m.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},k=l.forwardRef((function(e,t){var a=e.components,r=e.mdxType,n=e.originalType,m=e.parentName,o=d(e,["components","mdxType","originalType","parentName"]),k=p(a),c=r,s=k["".concat(m,".").concat(c)]||k[c]||u[c]||n;return a?l.createElement(s,i(i({ref:t},o),{},{components:a})):l.createElement(s,i({ref:t},o))}));function c(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var n=a.length,i=new Array(n);i[0]=k;var d={};for(var m in t)hasOwnProperty.call(t,m)&&(d[m]=t[m]);d.originalType=e,d.mdxType="string"==typeof e?e:r,i[1]=d;for(var p=2;p {a.r(t),a.d(t,{assets:()=>m,contentTitle:()=>i,default:()=>u,frontMatter:()=>n,metadata:()=>d,toc:()=>p});var l=a(87462),r=(a(67294),a(3905));const n={id:"SyncList-1",title:"SyncList "},i="Class SyncList<T>",d={unversionedId:"reference/Mirage.Collections/SyncList-1",id:"reference/Mirage.Collections/SyncList-1",title:"SyncList ",description:"Inheritance",source:"@site/docs/reference/Mirage.Collections/SyncList-1.md",sourceDirName:"reference/Mirage.Collections",slug:"/reference/Mirage.Collections/SyncList-1",permalink:"/Mirage/docs/reference/Mirage.Collections/SyncList-1",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.Collections/SyncList-1.md",tags:[],version:"current",frontMatter:{id:"SyncList-1",title:"SyncList "},sidebar:"api",previous:{title:"SyncList .Enumerator",permalink:"/Mirage/docs/reference/Mirage.Collections/SyncList-1.Enumerator"},next:{title:"SyncObjectUtils",permalink:"/Mirage/docs/reference/Mirage.Collections/SyncObjectUtils"}},m={},p=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5},{value:"Type Parameters",id:"type-parameters",level:5},{value:"Constructors",id:"constructors",level:3},{value:"SyncList()",id:"synclist",level:4},{value:"Declaration",id:"declaration",level:5},{value:"SyncList(IEqualityComparer<T>)",id:"synclistiequalitycomparert",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters",level:5},{value:"SyncList(IList<T>, IEqualityComparer<T>)",id:"synclistilistt-iequalitycomparert",level:4},{value:"Declaration",id:"declaration-2",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Properties",id:"properties",level:3},{value:"Count",id:"count",level:4},{value:"Declaration",id:"declaration-3",level:5},{value:"IsReadOnly",id:"isreadonly",level:4},{value:"Declaration",id:"declaration-4",level:5},{value:"IsDirty",id:"isdirty",level:4},{value:"Declaration",id:"declaration-5",level:5},{value:"ItemInt32",id:"itemint32",level:4},{value:"Declaration",id:"declaration-6",level:5},{value:"Methods",id:"methods",level:3},{value:"ISyncObject.SetShouldSyncFrom(Boolean)",id:"isyncobjectsetshouldsyncfromboolean",level:4},{value:"Declaration",id:"declaration-7",level:5},{value:"Parameters",id:"parameters-2",level:5},{value:"ISyncObject.SetNetworkBehaviour(NetworkBehaviour)",id:"isyncobjectsetnetworkbehaviournetworkbehaviour",level:4},{value:"Declaration",id:"declaration-8",level:5},{value:"Parameters",id:"parameters-3",level:5},{value:"Flush()",id:"flush",level:4},{value:"Declaration",id:"declaration-9",level:5},{value:"Reset()",id:"reset",level:4},{value:"Declaration",id:"declaration-10",level:5},{value:"OnSerializeAll(NetworkWriter)",id:"onserializeallnetworkwriter",level:4},{value:"Declaration",id:"declaration-11",level:5},{value:"Parameters",id:"parameters-4",level:5},{value:"OnSerializeDelta(NetworkWriter)",id:"onserializedeltanetworkwriter",level:4},{value:"Declaration",id:"declaration-12",level:5},{value:"Parameters",id:"parameters-5",level:5},{value:"OnDeserializeAll(NetworkReader)",id:"ondeserializeallnetworkreader",level:4},{value:"Declaration",id:"declaration-13",level:5},{value:"Parameters",id:"parameters-6",level:5},{value:"OnDeserializeDelta(NetworkReader)",id:"ondeserializedeltanetworkreader",level:4},{value:"Declaration",id:"declaration-14",level:5},{value:"Parameters",id:"parameters-7",level:5},{value:"Add(T)",id:"addt",level:4},{value:"Declaration",id:"declaration-15",level:5},{value:"Parameters",id:"parameters-8",level:5},{value:"AddRange(IEnumerable<T>)",id:"addrangeienumerablet",level:4},{value:"Declaration",id:"declaration-16",level:5},{value:"Parameters",id:"parameters-9",level:5},{value:"Clear()",id:"clear",level:4},{value:"Declaration",id:"declaration-17",level:5},{value:"Contains(T)",id:"containst",level:4},{value:"Declaration",id:"declaration-18",level:5},{value:"Parameters",id:"parameters-10",level:5},{value:"Returns",id:"returns",level:5},{value:"CopyTo(T[], Int32)",id:"copytot-int32",level:4},{value:"Declaration",id:"declaration-19",level:5},{value:"Parameters",id:"parameters-11",level:5},{value:"IndexOf(T)",id:"indexoft",level:4},{value:"Declaration",id:"declaration-20",level:5},{value:"Parameters",id:"parameters-12",level:5},{value:"Returns",id:"returns-1",level:5},{value:"FindIndex(Predicate<T>)",id:"findindexpredicatet",level:4},{value:"Declaration",id:"declaration-21",level:5},{value:"Parameters",id:"parameters-13",level:5},{value:"Returns",id:"returns-2",level:5},{value:"Find(Predicate<T>)",id:"findpredicatet",level:4},{value:"Declaration",id:"declaration-22",level:5},{value:"Parameters",id:"parameters-14",level:5},{value:"Returns",id:"returns-3",level:5},{value:"FindAll(Predicate<T>)",id:"findallpredicatet",level:4},{value:"Declaration",id:"declaration-23",level:5},{value:"Parameters",id:"parameters-15",level:5},{value:"Returns",id:"returns-4",level:5},{value:"Insert(Int32, T)",id:"insertint32-t",level:4},{value:"Declaration",id:"declaration-24",level:5},{value:"Parameters",id:"parameters-16",level:5},{value:"InsertRange(Int32, IEnumerable<T>)",id:"insertrangeint32-ienumerablet",level:4},{value:"Declaration",id:"declaration-25",level:5},{value:"Parameters",id:"parameters-17",level:5},{value:"Remove(T)",id:"removet",level:4},{value:"Declaration",id:"declaration-26",level:5},{value:"Parameters",id:"parameters-18",level:5},{value:"Returns",id:"returns-5",level:5},{value:"RemoveAt(Int32)",id:"removeatint32",level:4},{value:"Declaration",id:"declaration-27",level:5},{value:"Parameters",id:"parameters-19",level:5},{value:"RemoveAll(Predicate<T>)",id:"removeallpredicatet",level:4},{value:"Declaration",id:"declaration-28",level:5},{value:"Parameters",id:"parameters-20",level:5},{value:"Returns",id:"returns-6",level:5},{value:"SetItemDirty(T)",id:"setitemdirtyt",level:4},{value:"Declaration",id:"declaration-29",level:5},{value:"Parameters",id:"parameters-21",level:5},{value:"SetItemDirtyAt(Int32)",id:"setitemdirtyatint32",level:4},{value:"Declaration",id:"declaration-30",level:5},{value:"Parameters",id:"parameters-22",level:5},{value:"GetEnumerator()",id:"getenumerator",level:4},{value:"Declaration",id:"declaration-31",level:5},{value:"Returns",id:"returns-7",level:5},{value:"IEnumerable<T>.GetEnumerator()",id:"ienumerabletgetenumerator",level:4},{value:"Declaration",id:"declaration-32",level:5},{value:"Returns",id:"returns-8",level:5},{value:"IEnumerable.GetEnumerator()",id:"ienumerablegetenumerator",level:4},{value:"Declaration",id:"declaration-33",level:5},{value:"Returns",id:"returns-9",level:5}],o={toc:p};function u(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,l.Z)({},o,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"class-synclistt"},"Class SyncList","<","T",">"),(0,r.kt)("div",{class:"inheritance"},(0,r.kt)("h5",{id:"inheritance"},"Inheritance"),(0,r.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object")),(0,r.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Show")),(0,r.kt)("h5",{id:"syntax"},"Syntax"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public class SyncList : IList , ICollection , IReadOnlyList , IReadOnlyCollection , IEnumerable , IEnumerable, ISyncObject\n")),(0,r.kt)("h5",{id:"type-parameters"},"Type Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h3",{id:"constructors"},"Constructors"),(0,r.kt)("h4",{id:"synclist"},"SyncList()"),(0,r.kt)("h5",{id:"declaration"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public SyncList()\n")),(0,r.kt)("h4",{id:"synclistiequalitycomparert"},"SyncList(IEqualityComparer","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-1"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public SyncList(IEqualityComparer comparer)\n")),(0,r.kt)("h5",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IEqualityComparer","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"comparer"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"synclistilistt-iequalitycomparert"},"SyncList(IList","<","T",">",", IEqualityComparer","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-2"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public SyncList(IList objects, IEqualityComparer comparer = null)\n")),(0,r.kt)("h5",{id:"parameters-1"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IList","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"objects"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IEqualityComparer","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"comparer"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h3",{id:"properties"},"Properties"),(0,r.kt)("h4",{id:"count"},"Count"),(0,r.kt)("h5",{id:"declaration-3"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public int Count { get; }\n")),(0,r.kt)("h4",{id:"isreadonly"},"IsReadOnly"),(0,r.kt)("h5",{id:"declaration-4"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public bool IsReadOnly { get; }\n")),(0,r.kt)("h4",{id:"isdirty"},"IsDirty"),(0,r.kt)("h5",{id:"declaration-5"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public bool IsDirty { get; }\n")),(0,r.kt)("h4",{id:"itemint32"},"Item","[Int32]"),(0,r.kt)("h5",{id:"declaration-6"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public T this[int i] { get; set; }\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("h4",{id:"isyncobjectsetshouldsyncfromboolean"},"ISyncObject.SetShouldSyncFrom(Boolean)"),(0,r.kt)("h5",{id:"declaration-7"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"void ISyncObject.SetShouldSyncFrom(bool shouldSync)\n")),(0,r.kt)("h5",{id:"parameters-2"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,r.kt)("td",{parentName:"tr",align:null},"shouldSync"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"isyncobjectsetnetworkbehaviournetworkbehaviour"},"ISyncObject.SetNetworkBehaviour(NetworkBehaviour)"),(0,r.kt)("h5",{id:"declaration-8"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"void ISyncObject.SetNetworkBehaviour(NetworkBehaviour networkBehaviour)\n")),(0,r.kt)("h5",{id:"parameters-3"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.NetworkBehaviour"),(0,r.kt)("td",{parentName:"tr",align:null},"networkBehaviour"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"flush"},"Flush()"),(0,r.kt)("h5",{id:"declaration-9"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Flush()\n")),(0,r.kt)("h4",{id:"reset"},"Reset()"),(0,r.kt)("h5",{id:"declaration-10"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Reset()\n")),(0,r.kt)("h4",{id:"onserializeallnetworkwriter"},"OnSerializeAll(NetworkWriter)"),(0,r.kt)("h5",{id:"declaration-11"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void OnSerializeAll(NetworkWriter writer)\n")),(0,r.kt)("h5",{id:"parameters-4"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Serialization.NetworkWriter"),(0,r.kt)("td",{parentName:"tr",align:null},"writer"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"onserializedeltanetworkwriter"},"OnSerializeDelta(NetworkWriter)"),(0,r.kt)("h5",{id:"declaration-12"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void OnSerializeDelta(NetworkWriter writer)\n")),(0,r.kt)("h5",{id:"parameters-5"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Serialization.NetworkWriter"),(0,r.kt)("td",{parentName:"tr",align:null},"writer"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"ondeserializeallnetworkreader"},"OnDeserializeAll(NetworkReader)"),(0,r.kt)("h5",{id:"declaration-13"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void OnDeserializeAll(NetworkReader reader)\n")),(0,r.kt)("h5",{id:"parameters-6"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Serialization.NetworkReader"),(0,r.kt)("td",{parentName:"tr",align:null},"reader"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"ondeserializedeltanetworkreader"},"OnDeserializeDelta(NetworkReader)"),(0,r.kt)("h5",{id:"declaration-14"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void OnDeserializeDelta(NetworkReader reader)\n")),(0,r.kt)("h5",{id:"parameters-7"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Serialization.NetworkReader"),(0,r.kt)("td",{parentName:"tr",align:null},"reader"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"addt"},"Add(T)"),(0,r.kt)("h5",{id:"declaration-15"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Add(T item)\n")),(0,r.kt)("h5",{id:"parameters-8"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"addrangeienumerablet"},"AddRange(IEnumerable","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-16"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void AddRange(IEnumerable range)\n")),(0,r.kt)("h5",{id:"parameters-9"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IEnumerable","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"range"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"clear"},"Clear()"),(0,r.kt)("h5",{id:"declaration-17"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Clear()\n")),(0,r.kt)("h4",{id:"containst"},"Contains(T)"),(0,r.kt)("h5",{id:"declaration-18"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public bool Contains(T item)\n")),(0,r.kt)("h5",{id:"parameters-10"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"copytot-int32"},"CopyTo(T[], Int32)"),(0,r.kt)("h5",{id:"declaration-19"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void CopyTo(T[] array, int arrayIndex)\n")),(0,r.kt)("h5",{id:"parameters-11"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"{T}[]"),(0,r.kt)("td",{parentName:"tr",align:null},"array"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"arrayIndex"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"indexoft"},"IndexOf(T)"),(0,r.kt)("h5",{id:"declaration-20"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public int IndexOf(T item)\n")),(0,r.kt)("h5",{id:"parameters-12"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-1"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"findindexpredicatet"},"FindIndex(Predicate","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-21"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public int FindIndex(Predicate match)\n")),(0,r.kt)("h5",{id:"parameters-13"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Predicate","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"match"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-2"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"findpredicatet"},"Find(Predicate","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-22"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public T Find(Predicate match)\n")),(0,r.kt)("h5",{id:"parameters-14"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Predicate","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"match"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-3"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"findallpredicatet"},"FindAll(Predicate","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-23"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public List FindAll(Predicate match)\n")),(0,r.kt)("h5",{id:"parameters-15"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Predicate","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"match"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-4"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.List","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"insertint32-t"},"Insert(Int32, T)"),(0,r.kt)("h5",{id:"declaration-24"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Insert(int index, T item)\n")),(0,r.kt)("h5",{id:"parameters-16"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"index"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"insertrangeint32-ienumerablet"},"InsertRange(Int32, IEnumerable","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-25"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void InsertRange(int index, IEnumerable range)\n")),(0,r.kt)("h5",{id:"parameters-17"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"index"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IEnumerable","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"range"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"removet"},"Remove(T)"),(0,r.kt)("h5",{id:"declaration-26"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public bool Remove(T item)\n")),(0,r.kt)("h5",{id:"parameters-18"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-5"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"removeatint32"},"RemoveAt(Int32)"),(0,r.kt)("h5",{id:"declaration-27"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void RemoveAt(int index)\n")),(0,r.kt)("h5",{id:"parameters-19"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"index"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"removeallpredicatet"},"RemoveAll(Predicate","<","T",">",")"),(0,r.kt)("h5",{id:"declaration-28"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public int RemoveAll(Predicate match)\n")),(0,r.kt)("h5",{id:"parameters-20"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Predicate","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null},"match"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-6"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"setitemdirtyt"},"SetItemDirty(T)"),(0,r.kt)("p",null,"Can be used to set item dirty manually.\nshould be used with classes to avoid having to clear field first\nWill invoke OnSet"),(0,r.kt)("h5",{id:"declaration-29"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void SetItemDirty(T item)\n")),(0,r.kt)("h5",{id:"parameters-21"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"item"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"setitemdirtyatint32"},"SetItemDirtyAt(Int32)"),(0,r.kt)("p",null,"Can be used to set item dirty manually.\nshould be used with classes to avoid having to clear field first"),(0,r.kt)("h5",{id:"declaration-30"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void SetItemDirtyAt(int index)\n")),(0,r.kt)("h5",{id:"parameters-22"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"index"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"getenumerator"},"GetEnumerator()"),(0,r.kt)("h5",{id:"declaration-31"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public SyncList .Enumerator GetEnumerator()\n")),(0,r.kt)("h5",{id:"returns-7"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Collections.SyncList.Enumerator","<",">"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"ienumerabletgetenumerator"},"IEnumerable","<","T",">",".GetEnumerator()"),(0,r.kt)("h5",{id:"declaration-32"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"IEnumerator IEnumerable .GetEnumerator()\n")),(0,r.kt)("h5",{id:"returns-8"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.IEnumerator","<","T",">"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"ienumerablegetenumerator"},"IEnumerable.GetEnumerator()"),(0,r.kt)("h5",{id:"declaration-33"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"IEnumerator IEnumerable.GetEnumerator()\n")),(0,r.kt)("h5",{id:"returns-9"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Collections.IEnumerator"),(0,r.kt)("td",{parentName:"tr",align:null})))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1a180147.1015af7c.js b/assets/js/1a180147.1015af7c.js new file mode 100644 index 00000000000..0f24db36a66 --- /dev/null +++ b/assets/js/1a180147.1015af7c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[1183],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>w});var a=t(67294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n =0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a =0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,s=e.originalType,l=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(t),w=o,h=u["".concat(l,".").concat(w)]||u[w]||d[w]||s;return t?a.createElement(h,r(r({ref:n},c),{},{components:t})):a.createElement(h,r({ref:n},c))}));function w(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var s=t.length,r=new Array(s);r[0]=u;var i={};for(var l in n)hasOwnProperty.call(n,l)&&(i[l]=n[l]);i.originalType=e,i.mdxType="string"==typeof e?e:o,r[1]=i;for(var p=2;p {t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var a=t(87462),o=(t(67294),t(3905));const s={sidebar_position:6,title:"Spawn Object - Custom"},r="Custom Spawn Functions",i={unversionedId:"guides/game-objects/spawn-object-custom",id:"guides/game-objects/spawn-object-custom",title:"Spawn Object - Custom",description:"You can use spawn handler functions to customize the default behavior when creating spawned game objects on the client. Spawn handler functions ensure you have full control of how you spawn the game object, as well as how you destroy it.",source:"@site/docs/guides/game-objects/spawn-object-custom.md",sourceDirName:"guides/game-objects",slug:"/guides/game-objects/spawn-object-custom",permalink:"/Mirage/docs/guides/game-objects/spawn-object-custom",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/guides/game-objects/spawn-object-custom.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Spawn Object - Custom"},sidebar:"docs",previous:{title:"Spawn Object",permalink:"/Mirage/docs/guides/game-objects/spawn-object"},next:{title:"Spawn Object - Pooling",permalink:"/Mirage/docs/guides/game-objects/spawn-object-pooling"}},l={},p=[{value:"Setting Up a Game Object Pool with Custom Spawn Handlers",id:"setting-up-a-game-object-pool-with-custom-spawn-handlers",level:2},{value:"Dynamic spawning",id:"dynamic-spawning",level:2}],c={toc:p};function d(e){let{components:n,...t}=e;return(0,o.kt)("wrapper",(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"custom-spawn-functions"},"Custom Spawn Functions"),(0,o.kt)("p",null,"You can use spawn handler functions to customize the default behavior when creating spawned game objects on the client. Spawn handler functions ensure you have full control of how you spawn the game object, as well as how you destroy it."),(0,o.kt)("p",null,"Use ",(0,o.kt)("inlineCode",{parentName:"p"},"ClientObjectManager.RegisterSpawnHandler")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"ClientObjectManager.RegisterPrefab")," to register functions to spawn and destroy client game objects. The server creates game objects directly and then spawns them on the clients through this functionality. This function takes either the asset ID or a prefab and two function delegates: one to handle creating game objects on the client, and one to handle destroying game objects on the client. The asset ID can be a dynamic one, or just the asset ID found on the prefab game object you want to spawn."),(0,o.kt)("p",null,"The spawn/unspawn delegates will look something like this:"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Spawn Handler")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},"NetworkIdentity SpawnDelegate(SpawnMessage msg) \n{\n // do stuff here\n}\n")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"UnSpawn Handler")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},"void UnSpawnDelegate(NetworkIdentity spawned) \n{\n // do stuff here\n}\n")),(0,o.kt)("p",null,"When a prefab is saved its ",(0,o.kt)("inlineCode",{parentName:"p"},"PrefabHash")," field will be automatically set. If you want to create prefabs at runtime you will have to generate a new Hash instead."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Generate prefab at runtime")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},'// Create a hash that can be generated on both server and client\n// using a string and GetStableHashCode is a good way to do this\nint coinHash = "MyCoin".GetStableHashCode();\n\n// register handlers using hash\nClientObjectManager.RegisterSpawnHandler(coinHash, SpawnCoin, UnSpawnCoin);\n')),(0,o.kt)("admonition",{type:"note"},(0,o.kt)("p",{parentName:"admonition"},"The unspawn function may be left as ",(0,o.kt)("inlineCode",{parentName:"p"},"null"),", Mirage will then call ",(0,o.kt)("inlineCode",{parentName:"p"},"GameObject.Destroy")," when the destroy message is received.")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Use existing prefab")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},"// register handlers using prefab\nClientObjectManager.RegisterPrefab(coin, SpawnCoin, UnSpawnCoin);\n")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Spawn on Server")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},'int coinHash = "MyCoin".GetStableHashCode();\n\n// spawn a coin - SpawnCoin is called on client\n// pass in coinHash so that it is set on the Identity before it is sent to client\nNetworkServer.Spawn(gameObject, coinHash);\n')),(0,o.kt)("p",null,"The spawn functions themselves are implemented with the delegate signature. Here is the coin spawner. The ",(0,o.kt)("inlineCode",{parentName:"p"},"SpawnCoin")," would look the same, but have different spawn logic:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},"public NetworkIdentity SpawnCoin(SpawnMessage msg)\n{\n return Instantiate(m_CoinPrefab, msg.position, msg.rotation);\n}\npublic void UnSpawnCoin(NetworkIdentity spawned)\n{\n Destroy(spawned);\n}\n")),(0,o.kt)("p",null,"When using custom spawn functions, it is sometimes useful to be able to unspawn game objects without destroying them. This can be done by calling ",(0,o.kt)("inlineCode",{parentName:"p"},"NetworkServer.Destroy(identity, destroyServerObject: false)"),", making sure that the 2nd argument is false. This causes the object to be ",(0,o.kt)("inlineCode",{parentName:"p"},"Reset")," on the server and sends a ",(0,o.kt)("inlineCode",{parentName:"p"},"ObjectDestroyMessage")," to clients. The ",(0,o.kt)("inlineCode",{parentName:"p"},"ObjectDestroyMessage")," will cause the custom unspawn function to be called on the clients. If there is no unspawn function the object will instead be ",(0,o.kt)("inlineCode",{parentName:"p"},"Destroy")),(0,o.kt)("p",null,"Note that on the host, game objects are not spawned for the local client, because they already exist on the server. This also means that no spawn or unspawn handler functions are called."),(0,o.kt)("h2",{id:"setting-up-a-game-object-pool-with-custom-spawn-handlers"},"Setting Up a Game Object Pool with Custom Spawn Handlers"),(0,o.kt)("p",null,"you can use custom spawn handlers in order set up object pooling so you dont need to instantiate and destroy objects each time you use them. "),(0,o.kt)("p",null,"A full guide on pooling can be found here: ",(0,o.kt)("a",{parentName:"p",href:"./spawn-object-pooling"},"Spawn Object Pooling")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},"void ClientConnected() \n{\n clientObjectManager.RegisterPrefab(prefab, PoolSpawnHandler, PoolUnspawnHandler);\n}\n\n// used by clientObjectManager.RegisterPrefab\nNetworkIdentity PoolSpawnHandler(SpawnMessage msg)\n{\n return GetFromPool(msg.position, msg.rotation);\n}\n\n// used by clientObjectManager.RegisterPrefab\nvoid PoolUnspawnHandler(NetworkIdentity spawned)\n{\n PutBackInPool(spawned);\n}\n")),(0,o.kt)("h2",{id:"dynamic-spawning"},"Dynamic spawning"),(0,o.kt)("p",null,"Some times you may want to create objects at runtime and you might not know the prefab hash ahead of time. For this you can use Dynamic Spawn Handlers to return a spawn handler for a prefab hash."),(0,o.kt)("p",null,"Below is an example where client pre-spawns objects while loading, and then network spawns them when receiving a ",(0,o.kt)("inlineCode",{parentName:"p"},"SpawnMessage")," from server."),(0,o.kt)("p",null,"Dynamic Handler avoid the need to add 1 spawn handler for each prefab hash. Instead you can just add a single dynamic handler that can then be used to find and return objects."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-cs"},'public class DynamicSpawning : MonoBehaviour\n {\n public ServerObjectManager ServerObjectManager;\n public ClientObjectManager ClientObjectManager;\n\n // store handler in field so that you dont need to allocate a new one for each DynamicSpawn call\n private SpawnHandler _handler;\n private List_preSpawnedObjects = new List ();\n\n // call this on server to spawn objects and send spawn message to client\n public void SpawnOnServer()\n {\n // set up local objects\n SpawnLocal();\n\n // send spawn message\n for (var i = 0; i < _preSpawnedObjects.Count; i++)\n {\n // send index as prefabHash\n ServerObjectManager.Spawn(_preSpawnedObjects[i], prefabHash: i);\n }\n }\n\n // call this on client to spawn object and set up handler to receive spawn message \n public void SpawnOnClient()\n {\n // set up local objects\n SpawnLocal();\n\n // register handler so client can find objects when server sends spawn message\n _handler = new SpawnHandler(FindPreSpawnedObject, null);\n ClientObjectManager.RegisterDynamicSpawnHandler(DynamicSpawn);\n }\n\n private void SpawnLocal()\n {\n // fill _preSpawnedObjects here with objects\n // these can be prefabs or other objects you want to find\n _preSpawnedObjects.Add(new GameObject("object 1").AddComponent ());\n _preSpawnedObjects.Add(new GameObject("object 2").AddComponent ());\n }\n\n private SpawnHandler DynamicSpawn(int prefabHash)\n {\n // this will run for all SpawnMessages, so we must first check if this prefabHash is one we want to handle\n if (IsPreSpawnedId(prefabHash))\n // return a handler that is using FindPreSpawnedObject\n return _handler;\n else\n return null;\n }\n\n private bool IsPreSpawnedId(int prefabHash)\n {\n // prefabHash starts with 16 bits of 0, then it an id we are using for spawning\n // this chance of this happening randomly is very low \n // you can do more validation on the hash based on use case\n return (prefabHash & 0xFFFF) == 0;\n }\n\n // finds object based on hash and returns it\n public NetworkIdentity FindPreSpawnedObject(SpawnMessage spawnMessage)\n {\n var prefabHash = spawnMessage.PrefabHash.Value;\n // we stored index in last 16 bits on hash\n var index = prefabHash >> 16;\n\n var identity = _preSpawnedObjects[index];\n return identity;\n }\n }\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1a58ca7b.5b7302fc.js b/assets/js/1a58ca7b.5b7302fc.js new file mode 100644 index 00000000000..1620aac8d8b --- /dev/null +++ b/assets/js/1a58ca7b.5b7302fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9261],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>f});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r =0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},s=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=p(t),f=a,d=m["".concat(l,".").concat(f)]||m[f]||u[f]||i;return t?n.createElement(d,o(o({ref:r},s),{},{components:t})):n.createElement(d,o({ref:r},s))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=m;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,o[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=t(87462),a=(t(67294),t(3905));const i={id:"ITime",title:"ITime"},o="Interface ITime",c={unversionedId:"reference/Mirage.SocketLayer/ITime",id:"reference/Mirage.SocketLayer/ITime",title:"ITime",description:"Syntax",source:"@site/docs/reference/Mirage.SocketLayer/ITime.md",sourceDirName:"reference/Mirage.SocketLayer",slug:"/reference/Mirage.SocketLayer/ITime",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/ITime",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.SocketLayer/ITime.md",tags:[],version:"current",frontMatter:{id:"ITime",title:"ITime"},sidebar:"api",previous:{title:"ISocket",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/ISocket"},next:{title:"Metrics.Frame",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/Metrics.Frame"}},l={},p=[{value:"Syntax",id:"syntax",level:5},{value:"Properties",id:"properties",level:3},{value:"Now",id:"now",level:4},{value:"Declaration",id:"declaration",level:5}],s={toc:p};function u(e){let{components:r,...t}=e;return(0,a.kt)("wrapper",(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"interface-itime"},"Interface ITime"),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public interface ITime\n")),(0,a.kt)("h3",{id:"properties"},"Properties"),(0,a.kt)("h4",{id:"now"},"Now"),(0,a.kt)("h5",{id:"declaration"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"double Now { get; }\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1abe0f94.2f6f188e.js b/assets/js/1abe0f94.2f6f188e.js new file mode 100644 index 00000000000..40a198f4975 --- /dev/null +++ b/assets/js/1abe0f94.2f6f188e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9001],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t =0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r =0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),c=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,g=m["".concat(s,".").concat(d)]||m[d]||p[d]||o;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var c=2;c {n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(87462),a=(n(67294),n(3905));const o={sidebar_position:5},i="Clock Synchronization",l={unversionedId:"guides/clock-sync",id:"guides/clock-sync",title:"Clock Synchronization",description:"For many features, you need the clock to be synchronized between the client and the server. Mirage does that automatically for you.",source:"@site/docs/guides/clock-sync.md",sourceDirName:"guides",slug:"/guides/clock-sync",permalink:"/Mirage/docs/guides/clock-sync",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/guides/clock-sync.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"docs",previous:{title:"Attributes",permalink:"/Mirage/docs/guides/attributes"},next:{title:"Network Visibility",permalink:"/Mirage/docs/guides/network-visibility"}},s={},c=[],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"clock-synchronization"},"Clock Synchronization"),(0,a.kt)("p",null,"For many features, you need the clock to be synchronized between the client and the server. Mirage does that automatically for you."),(0,a.kt)("p",null,"To get the current time use this code:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"double now = NetworkTime.Time;\n")),(0,a.kt)("p",null,"It will return the same value on the client and the server. It starts at 0 when the server starts. "),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"The time is a double and should never be cast to a float. Casting this down to a float means the clock will lose precision after some time:"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"after 1 day, the accuracy goes down to 8 ms"),(0,a.kt)("li",{parentName:"ul"},"after 10 days, the accuracy is 62 ms"),(0,a.kt)("li",{parentName:"ul"},"after 30 days, the accuracy is 250 ms"),(0,a.kt)("li",{parentName:"ul"},"after 60 days, the accuracy is 500 ms"))),(0,a.kt)("p",null,"Mirage will also calculate the ",(0,a.kt)("strong",{parentName:"p"},"Return Trip Time")," as seen by the application:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"double rtt = NetworkTime.Rtt;\n")),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Return RTT will also be affected by the frame rate. A higher frame rate will mean less delay before the server reads the ping message and replies. ")),(0,a.kt)("p",null,"You can check the precision using:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"double timeStandardDeviation = NetworkTime.TimeSd;\n")),(0,a.kt)("p",null,"For example, if this returns 0.2, it means the time measurements swing up and down roughly 0.2 seconds."),(0,a.kt)("p",null,"Network time is smoothing out the values using ",(0,a.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average"},"Exponential moving average"),".\nYou can configure how often you want the client to send pings using:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"NetworkTime.PingInterval = 2.0f;\n")),(0,a.kt)("p",null,"You can configure how quickly results will change using:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"NetworkTime.PingWindowSize = 10;\n")),(0,a.kt)("p",null,"A higher number will result in smoother results, but a longer time to adjust to changes."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1bacd51f.cbf116e3.js b/assets/js/1bacd51f.cbf116e3.js new file mode 100644 index 00000000000..eb0b5ff5afd --- /dev/null +++ b/assets/js/1bacd51f.cbf116e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9027],{3905:(e,r,n)=>{n.d(r,{Zo:()=>p,kt:()=>f});var t=n(67294);function a(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function l(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function i(e){for(var r=1;r =0||(a[n]=e[n]);return a}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t =0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=t.createContext({}),u=function(e){var r=t.useContext(c),n=r;return e&&(n="function"==typeof e?e(r):i(i({},r),e)),n},p=function(e){var r=u(e.components);return t.createElement(c.Provider,{value:r},e.children)},s={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},d=t.forwardRef((function(e,r){var n=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=u(n),f=a,m=d["".concat(c,".").concat(f)]||d[f]||s[f]||l;return n?t.createElement(m,i(i({ref:r},p),{},{components:n})):t.createElement(m,i({ref:r},p))}));function f(e,r){var n=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var c in r)hasOwnProperty.call(r,c)&&(o[c]=r[c]);o.originalType=e,o.mdxType="string"==typeof e?e:a,i[1]=o;for(var u=2;u {n.r(r),n.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var t=n(87462),a=(n(67294),n(3905));const l={id:"Channel",title:"Channel"},i="Enum Channel",o={unversionedId:"reference/Mirage/Channel",id:"reference/Mirage/Channel",title:"Channel",description:"Syntax",source:"@site/docs/reference/Mirage/Channel.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/Channel",permalink:"/Mirage/docs/reference/Mirage/Channel",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/Channel.md",tags:[],version:"current",frontMatter:{id:"Channel",title:"Channel"},sidebar:"api",previous:{title:"AutoPool ",permalink:"/Mirage/docs/reference/Mirage/AutoPool-1"},next:{title:"CharacterSpawner.PlayerSpawnMethod",permalink:"/Mirage/docs/reference/Mirage/CharacterSpawner.PlayerSpawnMethod"}},c={},u=[{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"Reliable",id:"reliable",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Unreliable",id:"unreliable",level:4},{value:"Declaration",id:"declaration-1",level:5}],p={toc:u};function s(e){let{components:r,...n}=e;return(0,a.kt)("wrapper",(0,t.Z)({},p,n,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"enum-channel"},"Enum Channel"),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public enum Channel\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"reliable"},"Reliable"),(0,a.kt)("h5",{id:"declaration"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Reliable = 0\n")),(0,a.kt)("h4",{id:"unreliable"},"Unreliable"),(0,a.kt)("h5",{id:"declaration-1"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Unreliable = 1\n")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1be78505.6fe4481c.js b/assets/js/1be78505.6fe4481c.js new file mode 100644 index 00000000000..6ed76172f3f --- /dev/null +++ b/assets/js/1be78505.6fe4481c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9514,4972],{19963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ce});var a=n(67294),l=n(86010),o=n(1944),r=n(35281),c=n(52802),i=n(43320),s=n(74477),d=n(1116),m=n(4194),u=n(95999),b=n(12466),p=n(85936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a {e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var g=n(76775),_=n(87524),v=n(86668),k=n(21327),C=n(87462);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var y=n(59689),T=n(902);const x=Symbol("EmptyContext"),L=a.createContext(x);function w(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(L.Provider,{value:o},t)}var M=n(86043),F=n(48596),A=n(39960),B=n(72389);function H(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,B.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),g=(0,c._F)(t,o),_=(0,F.Mg)(h,o),{collapsed:k,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!g&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(L);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!k),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:g,collapsed:k,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":k},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":_})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":g}),onClick:b?e=>{null==n||n(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{null==n||n(t)},"aria-current":_?"page":void 0,"aria-expanded":b?!k:void 0,href:b?null!=f?f:"#":f},d),u),h&&b&&a.createElement(H,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:k},a.createElement(G,{items:m,tabIndex:k?-1:0,onItemClick:n,activePath:o,level:i+1})))}var W=n(13919),D=n(39471);const R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{href:m,label:u,className:b}=t,p=(0,c._F)(t,o),h=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!h&&R,{"menu__link--active":p}),"aria-current":p?"page":void 0,to:m},h&&{onClick:n?()=>n(t):void 0},d),u,!h&&a.createElement(D.Z,null)))}const K="menuHtmlItem_M9Kj";function U(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[K,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function V(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(U,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(w,null,t.map(((e,t)=>a.createElement(V,(0,C.Z)({key:t,item:e,index:t},n)))))}const G=(0,a.memo)(j),Y="menu_SIkG",q="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,y.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",Y,c&&q,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:n,activePath:t,level:1})))}const X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,r&&Q)},c&&a.createElement(k.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:o}))}const te=a.memo(ee);var ne=n(13102),ae=n(72961);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.Zo,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,_.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){var t;let{children:n}=e;const l=(0,d.V)();return a.createElement(a.Fragment,{key:null!=(t=null==l?void 0:l.name)?t:"noSidebar"},n)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,g.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",ge="docsWrapper_BCFX";function _e(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:ge},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ve=n(4972),ke=n(90197);function Ce(e){const{versionMetadata:t}=e,n=(0,c.hI)(e);if(!n)return a.createElement(ve.default,null);const{docElement:m,sidebarName:u,sidebarItems:b}=n;return a.createElement(a.Fragment,null,a.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:u,items:b},a.createElement(_e,null,m)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(67294),l=n(95999),o=n(1944),r=n(4194);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1c85ceac.0185f8ee.js b/assets/js/1c85ceac.0185f8ee.js new file mode 100644 index 00000000000..cc61b3d3c01 --- /dev/null +++ b/assets/js/1c85ceac.0185f8ee.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9987],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>u});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t =0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),c=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=c(e.components);return n.createElement(o.Provider,{value:t},e.children)},v={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,s=d(e,["components","mdxType","originalType","parentName"]),p=c(a),u=r,m=p["".concat(o,".").concat(u)]||p[u]||v[u]||l;return a?n.createElement(m,i(i({ref:t},s),{},{components:a})):n.createElement(m,i({ref:t},s))}));function u(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=p;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d.mdxType="string"==typeof e?e:r,i[1]=d;for(var c=2;c {a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>v,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const l={id:"AddLateEvent",title:"AddLateEvent"},i="Class AddLateEvent",d={unversionedId:"reference/Mirage.Events/AddLateEvent",id:"reference/Mirage.Events/AddLateEvent",title:"AddLateEvent",description:"An event that will invoke handlers immediately if they are added after has been called",source:"@site/docs/reference/Mirage.Events/AddLateEvent.md",sourceDirName:"reference/Mirage.Events",slug:"/reference/Mirage.Events/AddLateEvent",permalink:"/Mirage/docs/reference/Mirage.Events/AddLateEvent",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.Events/AddLateEvent.md",tags:[],version:"current",frontMatter:{id:"AddLateEvent",title:"AddLateEvent"},sidebar:"api",previous:{title:"AddLateEvent ",permalink:"/Mirage/docs/reference/Mirage.Events/AddLateEvent-2"},next:{title:"AddLateEventBase",permalink:"/Mirage/docs/reference/Mirage.Events/AddLateEventBase"}},o={},c=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5},{value:"Methods",id:"methods",level:3},{value:"AddListener(Action)",id:"addlisteneraction",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"RemoveListener(Action)",id:"removelisteneraction",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Invoke()",id:"invoke",level:4},{value:"Declaration",id:"declaration-2",level:5}],s={toc:c};function v(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"class-addlateevent"},"Class AddLateEvent"),(0,r.kt)("p",null,"An event that will invoke handlers immediately if they are added after has been called"),(0,r.kt)("div",{class:"inheritance"},(0,r.kt)("h5",{id:"inheritance"},"Inheritance"),(0,r.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object"),(0,r.kt)("div",{class:"level",style:{"--data-index":1}},"Mirage.Events.AddLateEventBase")),(0,r.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Show"),(0,r.kt)("p",null,"Mirage.Events.AddLateEventBase.HasInvoked"),(0,r.kt)("p",null,"Mirage.Events.AddLateEventBase.MarkInvoked()"),(0,r.kt)("p",null,"Mirage.Events.AddLateEventBase.Reset()")),(0,r.kt)("h5",{id:"syntax"},"Syntax"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"[Serializable]\npublic class AddLateEvent : AddLateEventBase, IAddLateEvent\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("h4",{id:"addlisteneraction"},"AddListener(Action)"),(0,r.kt)("h5",{id:"declaration"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void AddListener(Action handler)\n")),(0,r.kt)("h5",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Action"),(0,r.kt)("td",{parentName:"tr",align:null},"handler"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"removelisteneraction"},"RemoveListener(Action)"),(0,r.kt)("h5",{id:"declaration-1"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void RemoveListener(Action handler)\n")),(0,r.kt)("h5",{id:"parameters-1"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Action"),(0,r.kt)("td",{parentName:"tr",align:null},"handler"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"invoke"},"Invoke()"),(0,r.kt)("h5",{id:"declaration-2"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public virtual void Invoke()\n")))}v.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ca04d15.d6151682.js b/assets/js/1ca04d15.d6151682.js new file mode 100644 index 00000000000..aaac9b18ae0 --- /dev/null +++ b/assets/js/1ca04d15.d6151682.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[5783],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>k});var n=r(67294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t =0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var d=n.createContext({}),s=function(e){var t=n.useContext(d),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(d.Provider,{value:t},e.children)},v={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,d=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=s(r),k=a,u=y["".concat(d,".").concat(k)]||y[k]||v[k]||i;return r?n.createElement(u,l(l({ref:t},c),{},{components:r})):n.createElement(u,l({ref:t},c))}));function k(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=y;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o.mdxType="string"==typeof e?e:a,l[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>v,frontMatter:()=>i,metadata:()=>o,toc:()=>s});var n=r(87462),a=(r(67294),r(3905));const i={id:"NetworkPlayerAddLateEvent",title:"NetworkPlayerAddLateEvent"},l="Class NetworkPlayerAddLateEvent",o={unversionedId:"reference/Mirage.Events/NetworkPlayerAddLateEvent",id:"reference/Mirage.Events/NetworkPlayerAddLateEvent",title:"NetworkPlayerAddLateEvent",description:"Event fires from a or during a new connection, a new authentication, or a disconnection.",source:"@site/docs/reference/Mirage.Events/NetworkPlayerAddLateEvent.md",sourceDirName:"reference/Mirage.Events",slug:"/reference/Mirage.Events/NetworkPlayerAddLateEvent",permalink:"/Mirage/docs/reference/Mirage.Events/NetworkPlayerAddLateEvent",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.Events/NetworkPlayerAddLateEvent.md",tags:[],version:"current",frontMatter:{id:"NetworkPlayerAddLateEvent",title:"NetworkPlayerAddLateEvent"},sidebar:"api",previous:{title:"IAddLateEventUnity",permalink:"/Mirage/docs/reference/Mirage.Events/IAddLateEventUnity"},next:{title:"NetworkPlayerEvent",permalink:"/Mirage/docs/reference/Mirage.Events/NetworkPlayerEvent"}},d={},s=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5}],c={toc:s};function v(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"class-networkplayeraddlateevent"},"Class NetworkPlayerAddLateEvent"),(0,a.kt)("p",null,"Event fires from a or during a new connection, a new authentication, or a disconnection."),(0,a.kt)("div",{class:"inheritance"},(0,a.kt)("h5",{id:"inheritance"},"Inheritance"),(0,a.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object"),(0,a.kt)("div",{class:"level",style:{"--data-index":1}},"Mirage.Events.AddLateEventBase"),(0,a.kt)("div",{class:"level",style:{"--data-index":2}},"Mirage.Events.AddLateEvent "),(0,a.kt)("div",{class:"level",style:{"--data-index":3}},"Mirage.Events.AddLateEventUnity ")),(0,a.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,a.kt)("details",null,(0,a.kt)("summary",null,"Show"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventUnity","<","Mirage.INetworkPlayer, Mirage.Events.NetworkPlayerEvent",">",".AddListener(UnityAction","<","Mirage.INetworkPlayer",">",")"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventUnity","<","Mirage.INetworkPlayer, Mirage.Events.NetworkPlayerEvent",">",".RemoveListener(UnityAction","<","Mirage.INetworkPlayer",">",")"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventUnity","<","Mirage.INetworkPlayer, Mirage.Events.NetworkPlayerEvent",">",".Invoke(Mirage.INetworkPlayer)"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventUnity","<","Mirage.INetworkPlayer, Mirage.Events.NetworkPlayerEvent",">",".RemoveAllListeners()"),(0,a.kt)("p",null,"Mirage.Events.AddLateEvent","<","Mirage.INetworkPlayer",">","._arg0"),(0,a.kt)("p",null,"Mirage.Events.AddLateEvent","<","Mirage.INetworkPlayer",">",".AddListener(System.Action","<","Mirage.INetworkPlayer",">",")"),(0,a.kt)("p",null,"Mirage.Events.AddLateEvent","<","Mirage.INetworkPlayer",">",".RemoveListener(System.Action","<","Mirage.INetworkPlayer",">",")"),(0,a.kt)("p",null,"Mirage.Events.AddLateEvent","<","Mirage.INetworkPlayer",">",".Invoke(Mirage.INetworkPlayer)"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventBase.HasInvoked"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventBase.MarkInvoked()"),(0,a.kt)("p",null,"Mirage.Events.AddLateEventBase.Reset()")),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"[Serializable]\npublic class NetworkPlayerAddLateEvent : AddLateEventUnity , IAddLateEventUnity , IAddLateEvent \n")))}v.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1cf2e72f.df76257a.js b/assets/js/1cf2e72f.df76257a.js new file mode 100644 index 00000000000..c7eff40120b --- /dev/null +++ b/assets/js/1cf2e72f.df76257a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9189],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>m});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t =0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),o=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},s=function(e){var t=o(e.components);return r.createElement(d.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,d=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=o(a),m=n,h=u["".concat(d,".").concat(m)]||u[m]||p[m]||l;return a?r.createElement(h,i(i({ref:t},s),{},{components:a})):r.createElement(h,i({ref:t},s))}));function m(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=u;var c={};for(var d in t)hasOwnProperty.call(t,d)&&(c[d]=t[d]);c.originalType=e,c.mdxType="string"==typeof e?e:n,i[1]=c;for(var o=2;o {a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>c,toc:()=>o});var r=a(87462),n=(a(67294),a(3905));const l={id:"Batch",title:"Batch"},i="Class Batch",c={unversionedId:"reference/Mirage.SocketLayer/Batch",id:"reference/Mirage.SocketLayer/Batch",title:"Batch",description:"Inheritance",source:"@site/docs/reference/Mirage.SocketLayer/Batch.md",sourceDirName:"reference/Mirage.SocketLayer",slug:"/reference/Mirage.SocketLayer/Batch",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/Batch",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.SocketLayer/Batch.md",tags:[],version:"current",frontMatter:{id:"Batch",title:"Batch"},sidebar:"api",previous:{title:"AutoCompleteToken",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/AutoCompleteToken"},next:{title:"ByteBuffer",permalink:"/Mirage/docs/reference/Mirage.SocketLayer/ByteBuffer"}},d={},o=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5},{value:"Constructors",id:"constructors",level:3},{value:"Batch(Int32)",id:"batchint32",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"Fields",id:"fields",level:3},{value:"MESSAGE_LENGTH_SIZE",id:"message_length_size",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Properties",id:"properties",level:3},{value:"Created",id:"created",level:4},{value:"Declaration",id:"declaration-2",level:5},{value:"Methods",id:"methods",level:3},{value:"GetBatch()",id:"getbatch",level:4},{value:"Declaration",id:"declaration-3",level:5},{value:"Returns",id:"returns",level:5},{value:"GetBatchLength()",id:"getbatchlength",level:4},{value:"Declaration",id:"declaration-4",level:5},{value:"Returns",id:"returns-1",level:5},{value:"CreateNewBatch()",id:"createnewbatch",level:4},{value:"Declaration",id:"declaration-5",level:5},{value:"SendAndReset()",id:"sendandreset",level:4},{value:"Declaration",id:"declaration-6",level:5},{value:"AddMessage(Byte[], Int32, Int32)",id:"addmessagebyte-int32-int32",level:4},{value:"Declaration",id:"declaration-7",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Flush()",id:"flush",level:4},{value:"Declaration",id:"declaration-8",level:5}],s={toc:o};function p(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"class-batch"},"Class Batch"),(0,n.kt)("div",{class:"inheritance"},(0,n.kt)("h5",{id:"inheritance"},"Inheritance"),(0,n.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object")),(0,n.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,n.kt)("details",null,(0,n.kt)("summary",null,"Show")),(0,n.kt)("h5",{id:"syntax"},"Syntax"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public abstract class Batch\n")),(0,n.kt)("h3",{id:"constructors"},"Constructors"),(0,n.kt)("h4",{id:"batchint32"},"Batch(Int32)"),(0,n.kt)("h5",{id:"declaration"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public Batch(int maxPacketSize)\n")),(0,n.kt)("h5",{id:"parameters"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null},"maxPacketSize"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"message_length_size"},"MESSAGE_LENGTH_SIZE"),(0,n.kt)("h5",{id:"declaration-1"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public const int MESSAGE_LENGTH_SIZE = 2\n")),(0,n.kt)("h3",{id:"properties"},"Properties"),(0,n.kt)("h4",{id:"created"},"Created"),(0,n.kt)("h5",{id:"declaration-2"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected abstract bool Created { get; }\n")),(0,n.kt)("h3",{id:"methods"},"Methods"),(0,n.kt)("h4",{id:"getbatch"},"GetBatch()"),(0,n.kt)("h5",{id:"declaration-3"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected abstract byte[] GetBatch()\n")),(0,n.kt)("h5",{id:"returns"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Byte[]"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"getbatchlength"},"GetBatchLength()"),(0,n.kt)("h5",{id:"declaration-4"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected abstract int GetBatchLength()\n")),(0,n.kt)("h5",{id:"returns-1"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"createnewbatch"},"CreateNewBatch()"),(0,n.kt)("h5",{id:"declaration-5"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected abstract void CreateNewBatch()\n")),(0,n.kt)("h4",{id:"sendandreset"},"SendAndReset()"),(0,n.kt)("h5",{id:"declaration-6"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"protected abstract void SendAndReset()\n")),(0,n.kt)("h4",{id:"addmessagebyte-int32-int32"},"AddMessage(Byte[], Int32, Int32)"),(0,n.kt)("h5",{id:"declaration-7"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public void AddMessage(byte[] message, int offset, int length)\n")),(0,n.kt)("h5",{id:"parameters-1"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Byte[]"),(0,n.kt)("td",{parentName:"tr",align:null},"message"),(0,n.kt)("td",{parentName:"tr",align:null})),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null},"offset"),(0,n.kt)("td",{parentName:"tr",align:null})),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null},"length"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"flush"},"Flush()"),(0,n.kt)("h5",{id:"declaration-8"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public void Flush()\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1d0defc3.302b60f5.js b/assets/js/1d0defc3.302b60f5.js new file mode 100644 index 00000000000..701d673cd15 --- /dev/null +++ b/assets/js/1d0defc3.302b60f5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[3379],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t =0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var d=n.createContext({}),p=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},c=function(e){var t=p(e.components);return n.createElement(d.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,d=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),k=p(a),m=r,s=k["".concat(d,".").concat(m)]||k[m]||u[m]||l;return a?n.createElement(s,i(i({ref:t},c),{},{components:a})):n.createElement(s,i({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=k;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o.mdxType="string"==typeof e?e:r,i[1]=o;for(var p=2;p {a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var n=a(87462),r=(a(67294),a(3905));const l={id:"UdpSocket",title:"UdpSocket"},i="Class UdpSocket",o={unversionedId:"reference/Mirage.Sockets.Udp/UdpSocket",id:"reference/Mirage.Sockets.Udp/UdpSocket",title:"UdpSocket",description:"Inheritance",source:"@site/docs/reference/Mirage.Sockets.Udp/UdpSocket.md",sourceDirName:"reference/Mirage.Sockets.Udp",slug:"/reference/Mirage.Sockets.Udp/UdpSocket",permalink:"/Mirage/docs/reference/Mirage.Sockets.Udp/UdpSocket",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.Sockets.Udp/UdpSocket.md",tags:[],version:"current",frontMatter:{id:"UdpSocket",title:"UdpSocket"},sidebar:"api",previous:{title:"UdpMTU",permalink:"/Mirage/docs/reference/Mirage.Sockets.Udp/UdpMTU"},next:{title:"UdpSocketFactory",permalink:"/Mirage/docs/reference/Mirage.Sockets.Udp/UdpSocketFactory"}},d={},p=[{value:"Inheritance",id:"inheritance",level:5},{value:"Inherited Members",id:"inherited-members",level:5},{value:"Syntax",id:"syntax",level:5},{value:"Methods",id:"methods",level:3},{value:"Bind(IEndPoint)",id:"bindiendpoint",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"Connect(IEndPoint)",id:"connectiendpoint",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Close()",id:"close",level:4},{value:"Declaration",id:"declaration-2",level:5},{value:"Poll()",id:"poll",level:4},{value:"Declaration",id:"declaration-3",level:5},{value:"Returns",id:"returns",level:5},{value:"Receive(Byte[], out IEndPoint)",id:"receivebyte-out-iendpoint",level:4},{value:"Declaration",id:"declaration-4",level:5},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-1",level:5},{value:"Send(IEndPoint, Byte[], Int32)",id:"sendiendpoint-byte-int32",level:4},{value:"Declaration",id:"declaration-5",level:5},{value:"Parameters",id:"parameters-3",level:5}],c={toc:p};function u(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"class-udpsocket"},"Class UdpSocket"),(0,r.kt)("div",{class:"inheritance"},(0,r.kt)("h5",{id:"inheritance"},"Inheritance"),(0,r.kt)("div",{class:"level",style:{"--data-index":0}},"System.Object")),(0,r.kt)("h5",{id:"inherited-members"},"Inherited Members"),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Show")),(0,r.kt)("h5",{id:"syntax"},"Syntax"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public class UdpSocket : ISocket\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("h4",{id:"bindiendpoint"},"Bind(IEndPoint)"),(0,r.kt)("h5",{id:"declaration"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Bind(IEndPoint endPoint)\n")),(0,r.kt)("h5",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.SocketLayer.IEndPoint"),(0,r.kt)("td",{parentName:"tr",align:null},"endPoint"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"connectiendpoint"},"Connect(IEndPoint)"),(0,r.kt)("h5",{id:"declaration-1"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Connect(IEndPoint endPoint)\n")),(0,r.kt)("h5",{id:"parameters-1"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.SocketLayer.IEndPoint"),(0,r.kt)("td",{parentName:"tr",align:null},"endPoint"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"close"},"Close()"),(0,r.kt)("h5",{id:"declaration-2"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Close()\n")),(0,r.kt)("h4",{id:"poll"},"Poll()"),(0,r.kt)("p",null,"Is message avaliable"),(0,r.kt)("h5",{id:"declaration-3"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public bool Poll()\n")),(0,r.kt)("h5",{id:"returns"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,r.kt)("td",{parentName:"tr",align:null},"true if data to read")))),(0,r.kt)("h4",{id:"receivebyte-out-iendpoint"},"Receive(Byte[], out IEndPoint)"),(0,r.kt)("h5",{id:"declaration-4"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public int Receive(byte[] buffer, out IEndPoint endPoint)\n")),(0,r.kt)("h5",{id:"parameters-2"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Byte[]"),(0,r.kt)("td",{parentName:"tr",align:null},"buffer"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.SocketLayer.IEndPoint"),(0,r.kt)("td",{parentName:"tr",align:null},"endPoint"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h5",{id:"returns-1"},"Returns"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"sendiendpoint-byte-int32"},"Send(IEndPoint, Byte[], Int32)"),(0,r.kt)("h5",{id:"declaration-5"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public void Send(IEndPoint endPoint, byte[] packet, int length)\n")),(0,r.kt)("h5",{id:"parameters-3"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.SocketLayer.IEndPoint"),(0,r.kt)("td",{parentName:"tr",align:null},"endPoint"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Byte[]"),(0,r.kt)("td",{parentName:"tr",align:null},"packet"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,r.kt)("td",{parentName:"tr",align:null},"length"),(0,r.kt)("td",{parentName:"tr",align:null})))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1d99eae8.bc650cea.js b/assets/js/1d99eae8.bc650cea.js new file mode 100644 index 00000000000..cfca45a0b8d --- /dev/null +++ b/assets/js/1d99eae8.bc650cea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[9895],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t =0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r =0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),d=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=d(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,c=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=d(n),f=a,m=u["".concat(l,".").concat(f)]||u[f]||p[f]||c;return n?r.createElement(m,o(o({ref:t},s),{},{components:n})):r.createElement(m,o({ref:t},s))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=n.length,o=new Array(c);o[0]=u;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var d=2;d {n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>d});var r=n(87462),a=(n(67294),n(3905));const c={id:"ConnectState",title:"ConnectState"},o="Enum ConnectState",i={unversionedId:"reference/Mirage/ConnectState",id:"reference/Mirage/ConnectState",title:"ConnectState",description:"Syntax",source:"@site/docs/reference/Mirage/ConnectState.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/ConnectState",permalink:"/Mirage/docs/reference/Mirage/ConnectState",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/ConnectState.md",tags:[],version:"current",frontMatter:{id:"ConnectState",title:"ConnectState"},sidebar:"api",previous:{title:"ClientStoppedReason",permalink:"/Mirage/docs/reference/Mirage/ClientStoppedReason"},next:{title:"DeserializeFailedException",permalink:"/Mirage/docs/reference/Mirage/DeserializeFailedException"}},l={},d=[{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"Disconnected",id:"disconnected",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Connecting",id:"connecting",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Connected",id:"connected",level:4},{value:"Declaration",id:"declaration-2",level:5}],s={toc:d};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"enum-connectstate"},"Enum ConnectState"),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public enum ConnectState\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"disconnected"},"Disconnected"),(0,a.kt)("h5",{id:"declaration"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Disconnected = 0\n")),(0,a.kt)("h4",{id:"connecting"},"Connecting"),(0,a.kt)("h5",{id:"declaration-1"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Connecting = 1\n")),(0,a.kt)("h4",{id:"connected"},"Connected"),(0,a.kt)("h5",{id:"declaration-2"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Connected = 2\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e25fb88.a764c02c.js b/assets/js/1e25fb88.a764c02c.js new file mode 100644 index 00000000000..bacff872adf --- /dev/null +++ b/assets/js/1e25fb88.a764c02c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[742],{3905:(e,r,t)=>{t.d(r,{Zo:()=>s,kt:()=>y});var n=t(67294);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r =0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var o=n.createContext({}),p=function(e){var r=n.useContext(o),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},s=function(e){var r=p(e.components);return n.createElement(o.Provider,{value:r},e.children)},u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=p(t),y=a,f=d["".concat(o,".").concat(y)]||d[y]||u[y]||l;return t?n.createElement(f,c(c({ref:r},s),{},{components:t})):n.createElement(f,c({ref:r},s))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var l=t.length,c=new Array(l);c[0]=d;var i={};for(var o in r)hasOwnProperty.call(r,o)&&(i[o]=r[o]);i.originalType=e,i.mdxType="string"==typeof e?e:a,c[1]=i;for(var p=2;p {t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>c,default:()=>u,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=t(87462),a=(t(67294),t(3905));const l={id:"RpcReply",title:"RpcReply"},c="Struct RpcReply",i={unversionedId:"reference/Mirage.RemoteCalls/RpcReply",id:"reference/Mirage.RemoteCalls/RpcReply",title:"RpcReply",description:"Syntax",source:"@site/docs/reference/Mirage.RemoteCalls/RpcReply.md",sourceDirName:"reference/Mirage.RemoteCalls",slug:"/reference/Mirage.RemoteCalls/RpcReply",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RpcReply",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.RemoteCalls/RpcReply.md",tags:[],version:"current",frontMatter:{id:"RpcReply",title:"RpcReply"},sidebar:"api",previous:{title:"RpcMessage",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RpcMessage"},next:{title:"RpcWithReplyMessage",permalink:"/Mirage/docs/reference/Mirage.RemoteCalls/RpcWithReplyMessage"}},o={},p=[{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"ReplyId",id:"replyid",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Payload",id:"payload",level:4},{value:"Declaration",id:"declaration-1",level:5}],s={toc:p};function u(e){let{components:r,...t}=e;return(0,a.kt)("wrapper",(0,n.Z)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"struct-rpcreply"},"Struct RpcReply"),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public struct RpcReply\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"replyid"},"ReplyId"),(0,a.kt)("h5",{id:"declaration"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public int ReplyId\n")),(0,a.kt)("h4",{id:"payload"},"Payload"),(0,a.kt)("h5",{id:"declaration-1"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public ArraySegment Payload\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1e95c04c.c9e101b9.js b/assets/js/1e95c04c.c9e101b9.js new file mode 100644 index 00000000000..bfa22918ad5 --- /dev/null +++ b/assets/js/1e95c04c.c9e101b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[6004],{3905:(e,n,t)=>{t.d(n,{Zo:()=>d,kt:()=>f});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n =0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r =0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var o=r.createContext({}),s=function(e){var n=r.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},d=function(e){var n=s(e.components);return r.createElement(o.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},p=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=s(t),f=a,g=p["".concat(o,".").concat(f)]||p[f]||u[f]||i;return t?r.createElement(g,l(l({ref:n},d),{},{components:t})):r.createElement(g,l({ref:n},d))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=p;var c={};for(var o in n)hasOwnProperty.call(n,o)&&(c[o]=n[o]);c.originalType=e,c.mdxType="string"==typeof e?e:a,l[1]=c;for(var s=2;s{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var r=t(87462),a=(t(67294),t(3905));const i={id:"SyncTiming",title:"SyncTiming"},l="Enum SyncTiming",c={unversionedId:"reference/Mirage/SyncTiming",id:"reference/Mirage/SyncTiming",title:"SyncTiming",description:"Syntax",source:"@site/docs/reference/Mirage/SyncTiming.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/SyncTiming",permalink:"/Mirage/docs/reference/Mirage/SyncTiming",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/SyncTiming.md",tags:[],version:"current",frontMatter:{id:"SyncTiming",title:"SyncTiming"},sidebar:"api",previous:{title:"SyncSettings",permalink:"/Mirage/docs/reference/Mirage/SyncSettings"},next:{title:"SyncTo",permalink:"/Mirage/docs/reference/Mirage/SyncTo"}},o={},s=[{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"Variable",id:"variable",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Fixed",id:"fixed",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"NoInterval",id:"nointerval",level:4},{value:"Declaration",id:"declaration-2",level:5}],d={toc:s};function u(e){let{components:n,...t}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"enum-synctiming"},"Enum SyncTiming"),(0,a.kt)("h5",{id:"syntax"},"Syntax"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"public enum SyncTiming : byte\n")),(0,a.kt)("h3",{id:"fields"},"Fields"),(0,a.kt)("h4",{id:"variable"},"Variable"),(0,a.kt)("p",null,"Will wait for atleast after last sync before sending again."),(0,a.kt)("p",null,"Best used when values dont change often, or for non-time-critical data."),(0,a.kt)("p",null,"Will send less often than for the same ."),(0,a.kt)("h5",{id:"declaration"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Variable = 0\n")),(0,a.kt)("h4",{id:"fixed"},"Fixed"),(0,a.kt)("p",null,"Will ensure data is sent every if changed."),(0,a.kt)("p",null,"Best used for data that changes often and you want (1/) updates per second"),(0,a.kt)("h5",{id:"declaration-1"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"Fixed = 1\n")),(0,a.kt)("h4",{id:"nointerval"},"NoInterval"),(0,a.kt)("p",null,"Ignores Interval and will send changes in next update"),(0,a.kt)("h5",{id:"declaration-2"},"Declaration"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-cs"},"NoInterval = 2\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1f36a51e.0e73442f.js b/assets/js/1f36a51e.0e73442f.js new file mode 100644 index 00000000000..6557d8a2d04 --- /dev/null +++ b/assets/js/1f36a51e.0e73442f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[5849],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>k});var a=r(67294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var t=1;t =0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a =0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=c(r),k=n,m=d["".concat(s,".").concat(k)]||d[k]||u[k]||l;return r?a.createElement(m,i(i({ref:t},p),{},{components:r})):a.createElement(m,i({ref:t},p))}));function k(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var c=2;c {r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=r(87462),n=(r(67294),r(3905));const l={id:"INetworkVisibility",title:"INetworkVisibility"},i="Interface INetworkVisibility",o={unversionedId:"reference/Mirage/INetworkVisibility",id:"reference/Mirage/INetworkVisibility",title:"INetworkVisibility",description:"Syntax",source:"@site/docs/reference/Mirage/INetworkVisibility.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/INetworkVisibility",permalink:"/Mirage/docs/reference/Mirage/INetworkVisibility",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/INetworkVisibility.md",tags:[],version:"current",frontMatter:{id:"INetworkVisibility",title:"INetworkVisibility"},sidebar:"api",previous:{title:"INetworkPlayer",permalink:"/Mirage/docs/reference/Mirage/INetworkPlayer"},next:{title:"IObjectLocator",permalink:"/Mirage/docs/reference/Mirage/IObjectLocator"}},s={},c=[{value:"Syntax",id:"syntax",level:5},{value:"Methods",id:"methods",level:3},{value:"OnCheckObserver(INetworkPlayer)",id:"oncheckobserverinetworkplayer",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"Returns",id:"returns",level:5},{value:"OnRebuildObservers(HashSet<INetworkPlayer>, Boolean)",id:"onrebuildobservershashsetinetworkplayer-boolean",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters-1",level:5}],p={toc:c};function u(e){let{components:t,...r}=e;return(0,n.kt)("wrapper",(0,a.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"interface-inetworkvisibility"},"Interface INetworkVisibility"),(0,n.kt)("h5",{id:"syntax"},"Syntax"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public interface INetworkVisibility\n")),(0,n.kt)("h3",{id:"methods"},"Methods"),(0,n.kt)("h4",{id:"oncheckobserverinetworkplayer"},"OnCheckObserver(INetworkPlayer)"),(0,n.kt)("h5",{id:"declaration"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"bool OnCheckObserver(INetworkPlayer player)\n")),(0,n.kt)("h5",{id:"parameters"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"Mirage.INetworkPlayer"),(0,n.kt)("td",{parentName:"tr",align:null},"player"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h5",{id:"returns"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"onrebuildobservershashsetinetworkplayer-boolean"},"OnRebuildObservers(HashSet","<","INetworkPlayer",">",", Boolean)"),(0,n.kt)("h5",{id:"declaration-1"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"void OnRebuildObservers(HashSet observers, bool initialize)\n")),(0,n.kt)("h5",{id:"parameters-1"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Collections.Generic.HashSet","<","Mirage.INetworkPlayer",">"),(0,n.kt)("td",{parentName:"tr",align:null},"observers"),(0,n.kt)("td",{parentName:"tr",align:null})),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,n.kt)("td",{parentName:"tr",align:null},"initialize"),(0,n.kt)("td",{parentName:"tr",align:null})))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1fa3a74b.4e0ac8ac.js b/assets/js/1fa3a74b.4e0ac8ac.js new file mode 100644 index 00000000000..95aa8a450a8 --- /dev/null +++ b/assets/js/1fa3a74b.4e0ac8ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[6377],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>y});var n=r(67294);function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t =0||(s[r]=e[r]);return s}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,s=e.mdxType,i=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=l(r),y=s,g=d["".concat(c,".").concat(y)]||d[y]||p[y]||i;return r?n.createElement(g,a(a({ref:t},u),{},{components:r})):n.createElement(g,a({ref:t},u))}));function y(e,t){var r=arguments,s=t&&t.mdxType;if("string"==typeof e||s){var i=r.length,a=new Array(i);a[0]=d;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o.mdxType="string"==typeof e?e:s,a[1]=o;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var n=r(87462),s=(r(67294),r(3905));const i={id:"SessionKeyMessage",title:"SessionKeyMessage"},a="Struct SessionKeyMessage",o={unversionedId:"reference/Mirage.Authenticators.SessionId/SessionKeyMessage",id:"reference/Mirage.Authenticators.SessionId/SessionKeyMessage",title:"SessionKeyMessage",description:"Syntax",source:"@site/docs/reference/Mirage.Authenticators.SessionId/SessionKeyMessage.md",sourceDirName:"reference/Mirage.Authenticators.SessionId",slug:"/reference/Mirage.Authenticators.SessionId/SessionKeyMessage",permalink:"/Mirage/docs/reference/Mirage.Authenticators.SessionId/SessionKeyMessage",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage.Authenticators.SessionId/SessionKeyMessage.md",tags:[],version:"current",frontMatter:{id:"SessionKeyMessage",title:"SessionKeyMessage"},sidebar:"api",previous:{title:"SessionIdAuthenticator",permalink:"/Mirage/docs/reference/Mirage.Authenticators.SessionId/SessionIdAuthenticator"},next:{title:"Mirage.Collections",permalink:"/Mirage/docs/reference/Mirage.Collections/"}},c={},l=[{value:"Syntax",id:"syntax",level:5},{value:"Fields",id:"fields",level:3},{value:"SessionKey",id:"sessionkey",level:4},{value:"Declaration",id:"declaration",level:5}],u={toc:l};function p(e){let{components:t,...r}=e;return(0,s.kt)("wrapper",(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,s.kt)("h1",{id:"struct-sessionkeymessage"},"Struct SessionKeyMessage"),(0,s.kt)("h5",{id:"syntax"},"Syntax"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-cs"},"public struct SessionKeyMessage\n")),(0,s.kt)("h3",{id:"fields"},"Fields"),(0,s.kt)("h4",{id:"sessionkey"},"SessionKey"),(0,s.kt)("h5",{id:"declaration"},"Declaration"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-cs"},"public ArraySegment SessionKey\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1fab70f8.cd002bac.js b/assets/js/1fab70f8.cd002bac.js new file mode 100644 index 00000000000..297419aa800 --- /dev/null +++ b/assets/js/1fab70f8.cd002bac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[7581],{3905:(e,t,a)=>{a.d(t,{Zo:()=>p,kt:()=>k});var r=a(67294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t =0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var d=r.createContext({}),u=function(e){var t=r.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},p=function(e){var t=u(e.components);return r.createElement(d.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,d=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),m=u(a),k=n,s=m["".concat(d,".").concat(k)]||m[k]||c[k]||l;return a?r.createElement(s,i(i({ref:t},p),{},{components:a})):r.createElement(s,i({ref:t},p))}));function k(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=m;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o.mdxType="string"==typeof e?e:n,i[1]=o;for(var u=2;u {a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var r=a(87462),n=(a(67294),a(3905));const l={id:"NetworkBehaviour.Id",title:"NetworkBehaviour.Id"},i="Struct NetworkBehaviour.Id",o={unversionedId:"reference/Mirage/NetworkBehaviour.Id",id:"reference/Mirage/NetworkBehaviour.Id",title:"NetworkBehaviour.Id",description:"Syntax",source:"@site/docs/reference/Mirage/NetworkBehaviour.Id.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/NetworkBehaviour.Id",permalink:"/Mirage/docs/reference/Mirage/NetworkBehaviour.Id",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/NetworkBehaviour.Id.md",tags:[],version:"current",frontMatter:{id:"NetworkBehaviour.Id",title:"NetworkBehaviour.Id"},sidebar:"api",previous:{title:"NetworkBehaviorSyncvar",permalink:"/Mirage/docs/reference/Mirage/NetworkBehaviorSyncvar"},next:{title:"NetworkBehaviour",permalink:"/Mirage/docs/reference/Mirage/NetworkBehaviour"}},d={},u=[{value:"Syntax",id:"syntax",level:5},{value:"Constructors",id:"constructors",level:3},{value:"Id(UInt32, Int32)",id:"iduint32-int32",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"Id(NetworkBehaviour)",id:"idnetworkbehaviour",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Fields",id:"fields",level:3},{value:"NetId",id:"netid",level:4},{value:"Declaration",id:"declaration-2",level:5},{value:"ComponentIndex",id:"componentindex",level:4},{value:"Declaration",id:"declaration-3",level:5},{value:"Methods",id:"methods",level:3},{value:"GetHashCode()",id:"gethashcode",level:4},{value:"Declaration",id:"declaration-4",level:5},{value:"Returns",id:"returns",level:5},{value:"Equals(NetworkBehaviour.Id)",id:"equalsnetworkbehaviourid",level:4},{value:"Declaration",id:"declaration-5",level:5},{value:"Parameters",id:"parameters-2",level:5},{value:"Returns",id:"returns-1",level:5},{value:"Equals(Object)",id:"equalsobject",level:4},{value:"Declaration",id:"declaration-6",level:5},{value:"Parameters",id:"parameters-3",level:5},{value:"Returns",id:"returns-2",level:5}],p={toc:u};function c(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"struct-networkbehaviourid"},"Struct NetworkBehaviour.Id"),(0,n.kt)("h5",{id:"syntax"},"Syntax"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public struct Id : IEquatable \n")),(0,n.kt)("h3",{id:"constructors"},"Constructors"),(0,n.kt)("h4",{id:"iduint32-int32"},"Id(UInt32, Int32)"),(0,n.kt)("h5",{id:"declaration"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public Id(uint netId, int componentIndex)\n")),(0,n.kt)("h5",{id:"parameters"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.UInt32"),(0,n.kt)("td",{parentName:"tr",align:null},"netId"),(0,n.kt)("td",{parentName:"tr",align:null})),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null},"componentIndex"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"idnetworkbehaviour"},"Id(NetworkBehaviour)"),(0,n.kt)("h5",{id:"declaration-1"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public Id(NetworkBehaviour behaviour)\n")),(0,n.kt)("h5",{id:"parameters-1"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"Mirage.NetworkBehaviour"),(0,n.kt)("td",{parentName:"tr",align:null},"behaviour"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h3",{id:"fields"},"Fields"),(0,n.kt)("h4",{id:"netid"},"NetId"),(0,n.kt)("h5",{id:"declaration-2"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public readonly uint NetId\n")),(0,n.kt)("h4",{id:"componentindex"},"ComponentIndex"),(0,n.kt)("h5",{id:"declaration-3"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public readonly int ComponentIndex\n")),(0,n.kt)("h3",{id:"methods"},"Methods"),(0,n.kt)("h4",{id:"gethashcode"},"GetHashCode()"),(0,n.kt)("h5",{id:"declaration-4"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public override int GetHashCode()\n")),(0,n.kt)("h5",{id:"returns"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Int32"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"equalsnetworkbehaviourid"},"Equals(NetworkBehaviour.Id)"),(0,n.kt)("h5",{id:"declaration-5"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public bool Equals(NetworkBehaviour.Id other)\n")),(0,n.kt)("h5",{id:"parameters-2"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"Mirage.NetworkBehaviour.Id"),(0,n.kt)("td",{parentName:"tr",align:null},"other"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h5",{id:"returns-1"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h4",{id:"equalsobject"},"Equals(Object)"),(0,n.kt)("h5",{id:"declaration-6"},"Declaration"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-cs"},"public override bool Equals(object obj)\n")),(0,n.kt)("h5",{id:"parameters-3"},"Parameters"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Name"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Object"),(0,n.kt)("td",{parentName:"tr",align:null},"obj"),(0,n.kt)("td",{parentName:"tr",align:null})))),(0,n.kt)("h5",{id:"returns-2"},"Returns"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"Type"),(0,n.kt)("th",{parentName:"tr",align:null},"Description"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"System.Boolean"),(0,n.kt)("td",{parentName:"tr",align:null})))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/216e5825.682d4fd3.js b/assets/js/216e5825.682d4fd3.js new file mode 100644 index 00000000000..7061ba61e99 --- /dev/null +++ b/assets/js/216e5825.682d4fd3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[1747],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>g});var n=a(67294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t =0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n =0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},o=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,o=d(e,["components","mdxType","originalType","parentName"]),m=c(a),g=r,u=m["".concat(s,".").concat(g)]||m[g]||p[g]||l;return a?n.createElement(u,i(i({ref:t},o),{},{components:a})):n.createElement(u,i({ref:t},o))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,i=new Array(l);i[0]=m;var d={};for(var s in t)hasOwnProperty.call(t,s)&&(d[s]=t[s]);d.originalType=e,d.mdxType="string"==typeof e?e:r,i[1]=d;for(var c=2;c {a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var n=a(87462),r=(a(67294),a(3905));const l={id:"IMessageSender",title:"IMessageSender"},i="Interface IMessageSender",d={unversionedId:"reference/Mirage/IMessageSender",id:"reference/Mirage/IMessageSender",title:"IMessageSender",description:"An object that can send messages",source:"@site/docs/reference/Mirage/IMessageSender.md",sourceDirName:"reference/Mirage",slug:"/reference/Mirage/IMessageSender",permalink:"/Mirage/docs/reference/Mirage/IMessageSender",draft:!1,editUrl:"https://github.com/MirageNet/Mirage/tree/main/doc/docs/reference/Mirage/IMessageSender.md",tags:[],version:"current",frontMatter:{id:"IMessageSender",title:"IMessageSender"},sidebar:"api",previous:{title:"IMessageReceiver",permalink:"/Mirage/docs/reference/Mirage/IMessageReceiver"},next:{title:"INetIdGenerator",permalink:"/Mirage/docs/reference/Mirage/INetIdGenerator"}},s={},c=[{value:"Syntax",id:"syntax",level:5},{value:"Methods",id:"methods",level:3},{value:"Send<T>(T, Channel)",id:"sendtt-channel",level:4},{value:"Declaration",id:"declaration",level:5},{value:"Parameters",id:"parameters",level:5},{value:"Send(ArraySegment<Byte>, Channel)",id:"sendarraysegmentbyte-channel",level:4},{value:"Declaration",id:"declaration-1",level:5},{value:"Parameters",id:"parameters-1",level:5},{value:"Send<T>(T, INotifyCallBack)",id:"sendtt-inotifycallback",level:4},{value:"Declaration",id:"declaration-2",level:5},{value:"Parameters",id:"parameters-2",level:5}],o={toc:c};function p(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},o,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"interface-imessagesender"},"Interface IMessageSender"),(0,r.kt)("p",null,"An object that can send messages"),(0,r.kt)("h5",{id:"syntax"},"Syntax"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"public interface IMessageSender\n")),(0,r.kt)("h3",{id:"methods"},"Methods"),(0,r.kt)("h4",{id:"sendtt-channel"},"Send","<","T",">","(T, Channel)"),(0,r.kt)("h5",{id:"declaration"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"void Send (T message, Channel channelId = Channel.Reliable)\n")),(0,r.kt)("h5",{id:"parameters"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"message"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Channel"),(0,r.kt)("td",{parentName:"tr",align:null},"channelId"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"sendarraysegmentbyte-channel"},"Send(ArraySegment","<","Byte",">",", Channel)"),(0,r.kt)("h5",{id:"declaration-1"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"void Send(ArraySegment segment, Channel channelId = Channel.Reliable)\n")),(0,r.kt)("h5",{id:"parameters-1"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"System.ArraySegment","<","System.Byte",">"),(0,r.kt)("td",{parentName:"tr",align:null},"segment"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.Channel"),(0,r.kt)("td",{parentName:"tr",align:null},"channelId"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h4",{id:"sendtt-inotifycallback"},"Send","<","T",">","(T, INotifyCallBack)"),(0,r.kt)("h5",{id:"declaration-2"},"Declaration"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-cs"},"void Send (T message, INotifyCallBack notifyCallBack)\n")),(0,r.kt)("h5",{id:"parameters-2"},"Parameters"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"Type"),(0,r.kt)("th",{parentName:"tr",align:null},"Name"),(0,r.kt)("th",{parentName:"tr",align:null},"Description"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"T"),(0,r.kt)("td",{parentName:"tr",align:null},"message"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Mirage.SocketLayer.INotifyCallBack"),(0,r.kt)("td",{parentName:"tr",align:null},"notifyCallBack"),(0,r.kt)("td",{parentName:"tr",align:null})))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/22a4596f.f64b1ad3.js b/assets/js/22a4596f.f64b1ad3.js new file mode 100644 index 00000000000..5fe88aba3f2 --- /dev/null +++ b/assets/js/22a4596f.f64b1ad3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkmirage_docs=self.webpackChunkmirage_docs||[]).push([[7402],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>m});var i=n(67294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t =0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i