اتصال یونیتی - توابع ریموت

سرویس بلادرنگ «RealTime»

توابع ریموت بخشی از کد بازی شما هستند که دیگر کاربران عضو رووم میتوانند آنرا اجرا کنند. از این قابلیت برای هماهنگی رویداد های داخل بازی و ایجاد اشیایی که نیاز به همگام سازی مداوم ندارند بسیار سودمند است.

اجرای تابع ریموت

GsLiveRealtime.RunFunction<TFrom>(string FunctionName, FunctionType type, params object[] parameters);

این تابع با دریافت نام و مشخصات یک تابع و مشخص کردن کلاسی که تابع ریموت در آن قرار دارد آنرا با پارامتر های که در ورودی وارد شده است اجرا میکند.

ورودی ها:

+ TFrom: کلاسی که ریموت فانکشن مقصد در آن قرار دارد.

+ FunctionName: نام فانکشن ریموت مقصد که حساس به حروف بزرگ و کوچک است.

+ FunctionType: نوع اجرای فانکشن که مشخص کننده نحوه اجرای تابع است. این حالت ها به صورت All (اجرای تابع در تمامی کاربران رووم + خود کاربر)، Other (اجرای تابع در تمامی کاربران روم به جز فرد اجرا کننده)، Buffered (در این حالت تابع در تمامی کاربران آنلاین اجرا شده و برای کاربرانی که در آینده نیز وارد اتاق بازی شوند نیز اجرا خواهد شد.)

+ Parameters: ورودی تابع ریموت که میبایست دقیقا مشابه ورودی تابع ریموت تعریف شده باشد.

توجه کنید که  در صورتی که کاربری از اتاق بازی خارج شود توابع بافر شده توسط او نیز از بین خواهد رفت.

 
نحوه تعریف  تابع ریموت

برای تعریف این نوع توابع میبایست یک تابع void تعریف کرده (به نوع و ترتیب ورودی تابع دقت کنید) و در بالای آن اتریبیوت [GsLiveFunction] را قرار دهید. این نوع از توابع میتوانند توسط گیم سرویس اسکن شده و در اتاق بازی اجرا شوند.

توجه کنید که  توابع ریموت میبایست حتما در کلاس هایی باشند که از MonoBehaviourGsLive ارث بری میکنند.

 

نمونه تابع و اجرای آن

تعریف تابع در کلاس GameController:

[GsLiveFunction] 

void Test(int number, string name) { 
      Debug.Log("number:" + number + ", name:" + name )

}

اجرای تابع:

GsLiveRealtime.RunFunction<GameController>("Test",FunctionType.All,10,"ali");

پس از اجرای تابع مقدار number: 10, name: ali در تمامی کاربران لاگ میشود.