نمایش نتایج 1 تا 6 از 6

نام تاپیک: کار با فوتون سرور در یونیتی

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    کار با فوتون سرور در یونیتی

    عناوین :
    تنظیم و اماده سازی PUN در Photon cloud
    استفاده از PhotonViews
    ارتباط و اتصال به فوتون
    دریافت لیست اتاق ها
    ساخت و ملحق شدن به یک اتاق
    فیلتر کردن نتایج لابی به وسیله اولویت ها
    استفاده از ساختار یافتن دوستان
    همگام سازی مراحل بین بازیکنان
    و در اخر نمونه برنامه چت سیستم به وسیله PUN


    مقدمه :
    فوتون یونیتی سرور محصول شرکت ExitGames یک از محصولات پرطرفدار در میان توسعه دهنده گان یونیتی برای ساخت بازی ها و کاربرد های تحت شبکه می باشد که با ارائه API مشابه خود شبکه یونیتی اقدام به ارائه راه حل های بهتری برای برطرف کردن مشکلات خود شبکه داخلی یونیتی(مستر سرور) کرده است. خود فوتون یونیتی سرور به وسیله یک سرویس دیگر که ان را با نام فوتون ابری نام می بریم کار می کند .
    همانند شبکه یونیتی(مستر سرور) شبکه فوتون یونیتی نیز از udp برای ارتباط استفاده می کند . اما کلیدی ترین تفاوت بین انها این است که کاربر یا همان پلایر به صورت مستقیم به هاست سرور ها دسترسی ندارند . در عوض کاربران با اتصال به شاخه ای از سرور که ان را با نام ابر می شناسیم درخواست اتاق خالی و یا اتاق در دسترس را می نماید . یک اتاق باید به وسیله سرور ساخته شود و کلاینت باید به ان اتاق ملحق شود .


    تنظیم PUN در Photon Cloud
    برای شروع شما باید به ادرس زیر مراجعه کنید :
    https: //Cloud.exitgames.com
    پس از اینکه اکانت ایجاد کردید به قسمت Dashboard: My Photon | Application و سپس ساخت یک Application جدید . نام در اینجا مهم نیست اما باید ID را برای استفاده کپی کنید .

    سپس وارد Asset Store شده و سپس Photon Unity Networking را جستجو کرده پس از ان شما باید ابتدا Photon Unity Networking Free را ببینید . ان را دانلود کرده و Asset را وارد پروژه کنید .

    پس از دانلود پلاگین و وارد کردن ان به یونیتی شما باید با پنجره زیر که از شما sign Up شدن و یا app ID را می خواهد رو به رو شوید .

    بر روی Setup کلیک کرده چون شما از قبل ثبت نام کرده بودید نیازی نیست از Send استفاده کنید .
    پس از کلیک بر روی Setup و سپس انتخاب ملیت ( توجه داشته باشید که شرکت ExitGame سرور های مختلفی در چندین کشور دارد) . پس از انتخاب ملیت و وارد کردن شماره app ID اکنون می توانید ذخیره کرده و سپس از بابت متصل بودن ان به شبکه فوتون مطمئن باشید . در نظر داشته باشید که در نسخه رایگان کمی محدودیت در پلتفرم ها و تعداد کاربران دارید .
    پس از ان شما اماده استفاده از این پلاگین هستید .
    محدودیت هایی که از ان نام برده شده :
    عدم کار بر روی شبکه های مشابه در iOS و اندروید به وسیله لایسنس رایگان
    پشتیبانی کاربران حداکثر 20 نفر
    نگه داری و پشتیبانی در اندروید تا 30 روز


  2. #2

    نقل قول: کار با فوتون سرور در یونیتی

    استفاده از PhotonViews
    PUN دارای ویژگی با نام PhotonViews می باشد . این در اصل همان کار ابزار مشابه در خود یونیتی (NetworkViews) را که وظیفه ارسال و دریافت وضعیت ابجکت ها را بر عهده دارد را انجام می دهد . با وجود عملکرد مشابه کمی تفاوت در ان وجود دارد .
    خوشبختانه همانطور که در قبل نیز به ان اشاره شد به خاطر طراحی تقریبا مشابه این سیستم با سیستم داخلی خود یونیتی ما شاهد بسیاری از متد ها و عملکرد های یکسان در اینجا نیز خواهیم بود . مثلا در همین بخش ما برای ارسال توابع و متد ها در شبکه امکان استفاده از RPC ها را نیز داریم .
    در زیر مثالی را در استفاده از این بخش مشاهده می کنید :




    void Update()
    {

    if(PhotonView.IsMine)
    {

    if(Input.GetKeyDown(KeyCode.Space))
    {




    photonView.RPC("TestRPC",PhotonTargets.ALL);
    }






    }




    }

    [RPC]
    void TestRPC()
    {

    Debug.Log("An RPC was Called");


    }


    void OnPhotonSerializeView(PhotonStream stream,PhotonMessageInfi info)
    {

    if(stream.isWriting)
    {

    stream.sendNext(Transform.position);


    }
    else
    {


    transform.position - (vector3)stream.ReciveNext();


    }



    }



    توجه داشته باشید با اینکه این API مشابه با کاربرد شبکه داخلی خود یونیتی است . اما این دو به صورت کامل با یکدیگر منطبق نیستند و شما نمی توانید از ویژگی های یکی در دیگری استفاده کنید .

  3. #3

    نقل قول: کار با فوتون سرور در یونیتی

    اتصال به Photon و دریافت لیست اتاق ها
    بیاید به PhotonCloud متصل شوید . برای انجام این کار چند راه وجود دارد :
    1- شما می توانید به وسیله :
    PhotonNetwork.ConnectUsingSettings("1.0"); 

    با تنظیمات از پیش تعریف شده در editor panel (همان پنلی که در ابتدای کار AppId رادر ان وارد کرده بودید) این کار را انجام دهید .
    2- شما می توانید به وسیله صدا زدن
    PhotonNetwork.ConnectUsingSettings("1.0"); 
    با بررسی Ping به دنبال دسته سرور های مناسب در دسترس گشته و سپس به بهترین انها متصل شوید .
    3- شما می توانید به وسیله صدا زدن :
    PhotonNetwork.Connect(String ServerAddress,int Port,String AppId,String GameVersoin);

    با استفاده از این روش شما می توانید با استفاده از ادرس سرور مناسب به فوتون ابری متصل شوید .

    اگر شما از این روش برای اتصال می خواهید استفاده کنید در زیر می توانید ادرس سرور ها را برای این کار مشاهده کنید :
    US : app-us.exitgamescloud.com
    EU : app-eu.exitgamescloud.com
    Asia : app-asia.exitgamescloud.com
    japan : app-jp.exitgamescloud.com

    در اینجا برای پورت برای اتصال به صورت استاتیک بوده و شما میت وانید به وسیله دستور زیر ان را نیز مقدار دهی کنید :
    ServerSettings.DefaultMasterPort;


    برای نمونه در زیر اسکریپتی را مشاهده می کنید که با استفاده از ان می توانیم به سرور فوتون متصل شده و لیست اتاق هایی که در حال حاظر باز هستند را بر روی صفحه مشاهده کنیم .

    bool joined = false;
    void Start () {
    PhotonNetwork.ConnectUsingSettings("1.0");
    }
    void OnJoinedLobby()
    {


    joined = true;


    }


    void OnGUI()
    {

    if(!joined)
    {

    //reconnect
    }
    else
    {

    drawLobby();



    }


    GUILayout.Label(PhotonNetwork.connectionStateDetai led.ToString());


    }

    // Update is called once per frame
    void drawLobby()
    {

    if(PhotonNetwork.GetRoomList().Length == 0)
    {

    //Aren't any Rooms Available to join
    Debug.Log("Aren't any Rooms Available to join");
    }
    else
    {

    foreach(RoomInfo room in PhotonNetwork.GetRoomList())
    {

    //show room info to the GUI
    Debug.Log(room.name);
    }


    }



    }


  4. #4

    نقل قول: کار با فوتون سرور در یونیتی

    ساخت و ملحق شدن به یک اتاق :
    در اینجا می خواهیم نگاهی به چگونگی ساخت یک اتاق نگاهی بیندازیم .
    ساخت یک اتاق :
    برای ساخت یک اتاق باید از متد CreateRoom استفاده کنید .
    مثال :

    void OnGUI()
    {

    if(PhotonNetwork.room == null)
    {

    PhotonNetwork.CreateRoom("RoomNameHere",true,true, 8);


    }

    }


    مقادیر این متد به شرح زیر می باشند :
    1- نام اتاق
    2 - ایا قابل مشاهده باشد یا خیر ؟
    3 - ایا فعال باشد یا خیر ؟
    4 - حداکثر تعداد بازیکنان چقدر باشد ؟

    نکته :
    در اینجا ما متد هایی را نیز برای نگه داری وضعیت برگشتی از اتصال را نیز داریم که در اینجا به ان callbacks می گوییم

    1- OnJoinedLobby
    این متد callback در زمان ورود به Lobby صدا زده خواهد شد

    2 - OnJoinedRoom
    اگر اتاق با موفقیت ایجاد شد

    3-OnPhotonJoinRoomFailed و OnPhotonRandomJoinFailed
    برای زمانی که ملحق شدن به اتاق با مشکل مواجه شود .

    4 - OnPhotonCreateRoomFailed
    زمانی که ساخت یک اتاق با مشکل مواجه شود
    متاسفانه این مقدار هیچ پارامتری را برای نمایش دلیل این مشکل بر نمی گرداند.


    ملحق شدن به یک اتاق :
    ملحق شدن به یک اتاق همانند ساخت ان ساده است

    PhotonNetwork.JoinRoom(string RoomName);


    همچنین به وسیله دستور زیر می توانید از میان اتاق های موجود به صورت تصادفی به یکی از انها ملحق شوید
    PhotonNetwork.JoinRandomRoom();


    نکته :
    call back های مربوط به این متد را نیز پیش از این بررسی کرده ایم .

  5. #5

    نقل قول: کار با فوتون سرور در یونیتی

    یک سوال داشتم، game object ها رو چطور تحت شبکه میشه انتقال داد؟ فقط خواهشا راحت توضیح بدین من تازه کارم تو یونیتی

  6. #6

    نقل قول: کار با فوتون سرور در یونیتی

    سلام
    این پلاگین رو چطور میشه تهیه کرد؟
    لینک دانلود دارین؟

تاپیک های مشابه

  1. سوال: کار با میل سرور یاهو
    نوشته شده توسط ArtMiz در بخش PHP
    پاسخ: 2
    آخرین پست: شنبه 06 شهریور 1389, 21:40 عصر
  2. از کار افتادن برنامه سرور زمان خروج کلاینتها از شبکه
    نوشته شده توسط صمد حسین زاده آزاد در بخش SQL Server
    پاسخ: 4
    آخرین پست: سه شنبه 19 شهریور 1387, 00:47 صبح
  3. من SQl Server 2000 کار کرم ، سرور هم 2005 است
    نوشته شده توسط merlin_vista در بخش SQL Server
    پاسخ: 3
    آخرین پست: دوشنبه 09 مهر 1386, 02:01 صبح
  4. من SQl Server 2000 کار کرم ، سرور هم 2005 است
    نوشته شده توسط merlin_vista در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: یک شنبه 08 مهر 1386, 16:50 عصر
  5. چه سیستم عاملی برای کار با SQL سرور لازمه؟
    نوشته شده توسط نغمه در بخش SQL Server
    پاسخ: 5
    آخرین پست: سه شنبه 05 اسفند 1382, 07:54 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •