Unity3D 遊戲引擎之Unity3D回饋IOS進階介面訊息 (十)

來源:互聯網
上載者:User

Unity3D 遊戲引擎之Unity3D回饋IOS進階介面訊息

雨松MOMO原創文章如轉載,請註明:轉載至我的獨立網域名稱部落格雨松MOMO程式研究院,原文地址:http://www.xuanyusong.com/archives/521



   上一章介紹了IOS進階介面向Unity3D 發送訊息與Unity3D 接收訊息的過程,有去的訊息當然要有回的訊息這樣的過程才算完美,本章MOMO向大家介紹Unity3D訊息的回饋。


如所示,本章我們的目標是在Unity3D 介面中添加兩個GUI按鈕,並且在iPhone上點擊這兩個按鈕後分別彈出兩個IOS 進階介面的對話方塊。相信盆友們對GUI應該不會太陌生,在這裡我在前調一下GUI就是Unity3D 提供的一套UI系統。圖中的兩個UI 按鈕我就是用GUI做出來的。








Project欄目中建立一個c#指令碼,命名為Main.cs ,之前沒有使用過 C#寫指令碼,今天我用C#來寫這個指令碼,哇哢哢~~~ 如所示將指令碼拖動在攝像機上,指令碼中聲明兩個Texture 類型變數用來儲存按鈕繪製的圖片資源。







Main.cs 代碼 


using UnityEngine;using System.Collections;public class Main : MonoBehaviour {//聲明兩個Texture變數,圖片資源在外面連線賦值public Texture Button0;public Texture Button1;// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {}//這個方法用於繪製void OnGUI() {//繪製兩個按鈕if(GUI.Button(new Rect(0,44,120,120),Button0)){//傳回值為ture說明這個按鈕被點擊SDK.ActivateButton0();}//繪製兩個按鈕if(GUI.Button(new Rect(200,44,120,120),Button1)){//傳回值為ture說明這個按鈕被點擊SDK.ActivateButton1();}}}

這裡詳細說一下SDK這個類,這個類我們看作它是一個管理類,它不賦值在任意對象身上,只接受調用管理,點擊兩個按鈕後將分別調用下面方法中的_ActivateButton0() 與 _ActivateButton1(),而這兩個方法則是去調用xcode 我們自己實現的方法_pressButton0() 與 _pressButton1(), 前提上須下面代碼中的註冊,這樣子匯出項目的時候xcode會幫我們 產生註冊資訊,我們只須要實現這兩個方法就可以了。




SDK.cs 代碼

using UnityEngine;using System.Runtime.InteropServices;public class SDK{  //匯出按鈕以後將在xcode項目中產生這個按鈕的註冊, //這樣就可以在xocde代碼中實現這個按鈕點擊後的事件。 [DllImport("__Internal")] private static extern void _PressButton0 ();  public static void ActivateButton0 () {         if (Application.platform != RuntimePlatform.OSXEditor)         {        //點擊按鈕後調用xcode中的 _PressButton0 ()方法,        //方法中的內容須要我們自己來添加            _PressButton0 ();        } }  //和上面一樣 [DllImport("__Internal")] private static extern void _PressButton1 ();  public static void ActivateButton1 () { if (Application.platform != RuntimePlatform.OSXEditor)         {            _PressButton1 ();        } }}


這樣子Unity3D 部分已經完成,將Untiy3D項目匯出成Xcode項目,我們用Xcode開啟它。添加Unit3D中GUI按鈕點擊後的響應事件。建立一個類命名為MyView.h 、MyView.m,用它來接收Unity3D 回饋回來的訊息,_PressButton0 與 _PressButton1 這兩個方法在Unity3D中已經註冊過,所以在這個類中我們須要對它進行Xcode中的實現。


MyView.m

#import "MyView.h"  @implementation MyView  //接收Unity3D 傳遞過來的資訊void _PressButton0(){    UIAlertView *alert = [[UIAlertView alloc] init];    [alert setTitle:@"雨松MOMO程式世界"];    [alert setMessage:@"點擊了第一個按鈕"];    [alert addButtonWithTitle:@"確定"];    [alert  show];      [alert release];}void _PressButton1(){        UIAlertView *alert = [[UIAlertView alloc] init];    [alert setTitle:@"雨松MOMO程式世界"];    [alert setMessage:@"點擊了第二個按鈕"];    [alert addButtonWithTitle:@"確定"];    [alert  show];      [alert release];}@end  

OK大功告成,連上真機運行我們的項目,我們在iPhone中點擊了Unity3D 中GUI這兩個按鈕後,通過訊息的回饋順利的彈出IOS進階介面 的對話方塊,哇哢哢~






最後歡迎各位盆友可以和MOMO一起討論Unity3D遊戲開發,冬天就要來啦大家注意添加衣服,注意身體健康噢。哇哢哢~~~ 附上Unity3D工程的,Xcode項目我就不上傳了,須要的自己匯出。不早了,大家晚安,哇哢哢~~

http://www.xuanyusong.com/archives/521


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.