av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Unity3D游戲引擎之iOS高級界面消息發(fā)送與接收

今天和大家討論iOS的高級界面與Unity3D游戲引擎的交互,這個在開發(fā)中是非常重要的,Unity3D 畢竟是一個面向多平臺的一個游戲引擎,它不可能全部為IOS 考慮的面面俱到,引擎中也不存在針對IOS的高級界面的控件的使用。

成都創(chuàng)新互聯(lián)公司專注于中大型企業(yè)的成都做網(wǎng)站、網(wǎng)站制作和網(wǎng)站改版、網(wǎng)站營銷服務,追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術與技術開發(fā)的融合,累計客戶數(shù)千家,服務滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注品牌網(wǎng)站制作和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!

本例實現(xiàn)游戲背景是Unity3D 的游戲世界,前面添加4個IOS的高級界面的按鈕,并且點擊這些按鈕可以將消息傳遞給背景的Unity3D ,讓它做一些事情。 上一章介紹了觸摸IOS屏幕 移動攝像機的位置,下面有盆友問我說他不想移動攝像機的位置,就想移動物體的位置,我在這里補充一下,可以把腳本綁定在箱子上,參照物選擇為主攝像機,這樣子更新箱子的腳本就OK啦。今天例子,我就將腳本綁定在箱子上,如下圖所示,把Move腳本綁定在這個 Cube中。 先把Move腳本的代碼貼出來,這里面我寫了4個方法分別處理這個箱子的旋轉,這4個方法是由IOS上的代碼向Unity發(fā)送消息后調用的,下面我會介紹具體操作的方法。

[代碼]js代碼:

01 var vrotate : Vector3; 
02    
03 //向左旋轉 
04 function MoveLeft() 
05
06     var rotate : float = Time.deltaTime * 100;  
07     vrotate = Vector3.up * rotate; 
08     transform.Rotate(vrotate, Space.World);   
09
10    
11 //向右旋轉 
12 function MoveRight() 
13
14     var rotate : float = Time.deltaTime * 100;  
15     vrotate = Vector3.down* rotate; 
16     transform.Rotate(vrotate, Space.World);   
17
18    
19 //向上旋轉 
20 function MoveUp(){ 
21     var rotate : float = Time.deltaTime * 100;  
22     vrotate = Vector3.right* rotate; 
23     transform.Rotate(vrotate, Space.World);   
24
25    
26 //向下旋轉 
27 function MoveDown(){ 
28     var rotate : float = Time.deltaTime * 100;  
29     vrotate = Vector3.left* rotate; 
30     transform.Rotate(vrotate, Space.World);   
31 }

到這里盆友們可以將這個Unity工程導出成Xcode項目,不會的盆友請看我之前的文章哈,Xcode項目導出成功后,我們先添加4個高級界面的按鈕用來點擊響應上面腳本的這4個旋轉箱子的方法。   創(chuàng)建一個類繼承UIViewController,用來添加我們的高級界面的視圖,我暫且命名為MyView.   打開Unity3D導出的AppController.mm這個類,頭文件處先導入我們的這個類 #import "MyView"

找到下面這個方法,來添加view

int OpenEAGL_UnityCallback(UIWindow** window, int* screenWidth, int* screenHeight,  int* openglesVersion)

EAGLView 是Unity3D 背景的那個View, 下面我們添加一個我們自己寫的View 覆蓋在它上面。

[代碼]c#/cpp/oc代碼:

1 // Create a full-screen window 
2 _window = [[UIWindow alloc] initWithFrame:rect]; 
3 EAGLView* view = [[EAGLView alloc] initWithFrame:rect]; 
4 [_window addSubview:view]; 
5    
6 MyView * myView =  [[MyView alloc] init]; 
7 [_window addSubview:myView.view];

貼出MyView的代碼,寫完發(fā)現(xiàn)忘釋放內存了,呵呵,懶得改了,本章主要的介紹的不是這個哦。

[代碼]c#/cpp/oc代碼:

001 // 
002 //  MyView.m 
003 //  Unity-iPhone 
004 // 
005 //  Created by 雨松MOMO on 11-11-1. 
006 //  Copyright 2011 __MyCompanyName__. All rights reserved. 
007 // 
008    
009 #import "MyView.h" 
010    
011    
012 @implementation MyView 
013    
014    
015 // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
016 - (void)viewDidLoad { 
017     [super viewDidLoad]; 
018     //創(chuàng)建label視圖   
019     UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 40)];   
020     //設置顯示內容   
021     label.text = @"雨松MOMO的程序世界";   
022     //設置背景顏色   
023     label.backgroundColor = [UIColor blueColor];   
024     //設置文字顏色   
025     label.textColor = [UIColor whiteColor];   
026     //設置顯示位置居中   
027     label.textAlignment = UITextAlignmentCenter;   
028     //設置字體大小   
029     label.font = [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20]; 
030        
031     //創(chuàng)建按鈕   
032     UIButton *button0 = [UIButton buttonWithType:1];   
033     //設置按鈕范圍   
034     button0.frame = CGRectMake(0, 40, 100, 30);   
035     //設置按鈕顯示內容   
036     [button0 setTitle:@"矩形左旋轉" forState:UIControlStateNormal];   
037     //設置按鈕改變后 綁定響應方法   
038     [button0 addTarget:self action:@selector(LeftButtonPressed) forControlEvents:UIControlEventTouchUpInside];   
039        
040     //創(chuàng)建按鈕   
041     UIButton *button1 = [UIButton buttonWithType:1];   
042     //設置按鈕范圍   
043     button1.frame = CGRectMake(0, 100, 100, 30);   
044     //設置按鈕顯示內容   
045     [button1 setTitle:@"矩形右旋轉" forState:UIControlStateNormal];   
046     //設置按鈕改變后 綁定響應方法   
047     [button1 addTarget:self action:@selector(RightButtonPressed) forControlEvents:UIControlEventTouchUpInside];   
048    
049     //創(chuàng)建按鈕   
050     UIButton *button2 = [UIButton buttonWithType:1];   
051     //設置按鈕范圍   
052     button2.frame = CGRectMake(0, 160, 100, 30);   
053     //設置按鈕顯示內容   
054     [button2 setTitle:@"矩形上旋轉" forState:UIControlStateNormal];   
055     //設置按鈕改變后 綁定響應方法   
056     [button2 addTarget:self action:@selector(UpButtonPressed) forControlEvents:UIControlEventTouchUpInside];   
057        
058     //創(chuàng)建按鈕   
059     UIButton *button3 = [UIButton buttonWithType:1];   
060     //設置按鈕范圍   
061     button3.frame = CGRectMake(0, 220, 100, 30);   
062     //設置按鈕顯示內容   
063     [button3 setTitle:@"矩形下旋轉" forState:UIControlStateNormal];   
064     //設置按鈕改變后 綁定響應方法   
065     [button3 addTarget:self action:@selector(DownButtonPressed) forControlEvents:UIControlEventTouchUpInside];   
066        
067        
068     //向view添加 
069     [self.view addSubview:label]; 
070     [self.view addSubview:button0]; 
071     [self.view addSubview:button1]; 
072     [self.view addSubview:button2]; 
073     [self.view addSubview:button3]; 
074
075    
076 //向左按鈕 
077 -(void)LeftButtonPressed{ 
078     UnitySendMessage("Cube","MoveLeft",""); 
079
080    
081 //向右按鈕 
082 -(void)RightButtonPressed{ 
083     UnitySendMessage("Cube","MoveRight",""); 
084
085 //向上按鈕 
086 -(void)UpButtonPressed{ 
087     UnitySendMessage("Cube","MoveUp",""); 
088
089    
090 //向下按鈕 
091 -(void)DownButtonPressed{ 
092     UnitySendMessage("Cube","MoveDown",""); 
093
094    
095    
096    
097 - (void)didReceiveMemoryWarning { 
098     // Releases the view if it doesn't have a superview. 
099     [super didReceiveMemoryWarning]; 
100        
101     // Release any cached data, images, etc. that aren't in use. 
102
103    
104 - (void)viewDidUnload { 
105     [super viewDidUnload]; 
106
107    
108    
109 - (void)dealloc { 
110     [super dealloc]; 
111
112    
113    
114 @end

這里我主要說一下下面這個方法,它是Unity底層幫我們寫好的一個方法,意思iPhone向向Unity發(fā)送消息,

參數(shù)1:場景中的模型名稱,Cube就是我們定義的一個箱子。

參數(shù)2:腳本方法名稱MoveLeft就是上面腳本中的方法,

參數(shù)3:為一個char *類型的 可以向Unity中傳遞數(shù)據(jù)。

UnitySendMessage("Cube","MoveLeft","");

我們可以向Unity3D中任意模型發(fā)送消息調用它綁定的腳本中的方法,當前前提是模型名稱、方法名稱、 參數(shù)都填寫正確。

這里4個按鈕都是以這種方式傳遞消息,下面是iPhone 真機的效果圖,我們觸摸點擊4個高級界面的按鈕可以實現(xiàn)Unity3D世界中的模型旋轉,  所以大家一定要切記這個方法,很重要噢,哇咔咔~

Move.unitypackage.zip


網(wǎng)站名稱:Unity3D游戲引擎之iOS高級界面消息發(fā)送與接收
分享鏈接:http://uogjgqi.cn/article/ccecihd.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流