91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

[unity3d]水果忍者-界面搭建

發布時間:2020-07-22 07:42:45 來源:網絡 閱讀:630 作者:蓬萊仙羽 欄目:游戲開發

今天開始用Unity3D做一下水果忍者的游戲,Keep study very day!

效果圖:                                                                                                                     


[unity3d]水果忍者-界面搭建

[unity3d]水果忍者-界面搭建

實現步驟:                                                                                                                  

1.貼圖的創建

[unity3d]水果忍者-界面搭建

這里的Pixel Inset中X,Y,Width,Height是貼圖的位置以及寬高屬性,是只讀的,可恨的只讀,不然我就可以在后臺代碼更改貼圖的寬高來自適應分辨率了,就是因為這不可修改,讓我苦惱的沒辦法做分辨率的自適應,如果我是在OnGUI方法來時時繪制GUITexture,但我又覺得太耗資源,我寫不了那樣的代碼。我具有強迫癥,那種性能不好的代碼不忍下手!!!
關于錨點問題:這里的X,Y是以圖片的左下角為基準點,由于我之前是搞cocos2dx,對精靈的錨點等屬性熟悉,但后來搞懂Unity里面圖片的“錨點”默認是左下角的(0,0)點,并且貌似不可修改,cocos2dx默認是中心點(0.5,0.5),所以這里的X,Y就都設置為0,圖片的左下角就跟屏幕的左下角對其,然后寬高設置為屏幕的分辨率,我的手機分辨率是800*480,所以我就設置了這么大。

2.聲音的添加

創建一個空物體,點擊菜單欄GameObject->Create Empty,命名為audio,然后給他添加一個Audio Source組件,Component->Add->Audio Source,然后設置AudioClip為背景聲音,并且設置Loop循環播放和Play On Awake程序啟動時自動播放。
[unity3d]水果忍者-界面搭建
   
關于腳本控制聲音的開關,下面介紹。

3.手動“繪制”按鈕

其他的菜單按鈕,我們在GUI里面“繪制”,GUI方法是每幀都調用的方法,用于在屏幕上繪制東西,之所以說GUI效率沒有NGUI好就是因為它每幀都不停的繪制,NGUI可能對這方面做了優化。所以現在界面的制作普遍都是傾向于用NGUI,并且后者對自適應做的非常好。
NGUI的自適應非常簡單:
[unity3d]水果忍者-界面搭建
這里我還延續了之前cocos2dx的思想,先獲取屏幕的寬高,然后計算按鈕繪制的位置,這樣就能適應不同的分辨率。
這里我就直接貼代碼了,代碼比較簡單,通俗易懂!
using UnityEngine; using System.Collections;  public class start : MonoBehaviour {       public GUISkin mySkin;      private bool isSound1Button = false; 	private bool isSound2Button = true;     private AudioSource sound; 	 	 	private float screenwitdh; 	private float screenheight; 	 	public GUITexture background; 	public GUITexture title; 	 	void Awake() 	{ //		screenwitdh = Screen.width; //		screenheight = Screen.height; 		 		//想改變背景的分辨率 //		background.guiTexture.pixelInset.x = 0; //		background.guiTexture.pixelInset.y = 0; //		background.guiTexture.pixelInset.width = screenwitdh; //		background.guiTexture.pixelInset.height = screenheight; 	}  	// Use this for initialization 	void Start ()  	{ 		sound = gameObject.GetComponent<AudioSource>(); 	} 	     void OnGUI()     { 		 		screenwitdh = Screen.width; 		screenheight = Screen.height; 		         GUI.skin = mySkin;  		//這里的GUI坐標是以左上角為原點跟GUITexture的坐標不同,GUITexture屬性中是OpenGL坐標是從左下方開始為原點         if (GUI.Button(new Rect(screenwitdh/2-110, screenheight -280, 220, 66), "", GUI.skin.GetStyle("playbutton")))         {             Application.LoadLevel(1);         } 		if(GUI.Button (new Rect(screenwitdh/2-160,screenheight -200,320,66),"",GUI.skin.GetStyle("MoreButton"))) 		{ 			Application.OpenURL("http://blog.csdn.net/dingxiaowei2013");	 		} 		if(GUI.Button(new Rect(screenwitdh/2-100,screenheight -120,200,66),"",GUI.skin.GetStyle("CreditButton"))) 		{ 			Application.OpenURL("http://blog.csdn.net/dingxiaowei2013"); 		} 		 		if(isSound1Button) 		{ 			if(GUI.Button(new Rect(45,screenheight-45,20,31),"",GUI.skin.GetStyle("Sound1Button"))) 			{ 				sound.Play(); 				isSound1Button = false; 				isSound2Button = true; 			} 		} 		 		if(isSound2Button) 		{ 			if(GUI.Button(new Rect(45,screenheight-45,37,31),"",GUI.skin.GetStyle("Sound2Button"))) 			{ 				sound.Stop(); 				isSound1Button = true; 				isSound2Button = false; 			} 		}     } } 

不早了,早點去睡覺,后續的后面繼續補上!

==================== 迂者 丁小未 CSDN博客專欄=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互學習,共同進步 ===================

 

轉載請注明出處:http://blog.csdn.net/dingxiaowei2013/article/details/18376397

歡迎關注我的微博:http://weibo.com/u/2590571922

需要工程文件的請留言!


今天將昨天的版本做了一些自適應的修改:

GUITexture的屏幕自適應:

screenwitdh = Screen.currentResolution.width; screenheight = Screen.currentResolution.height; //改變背景的分辨率 background.transform.position = Vector3.zero; background.transform.localScale = Vector3.zero; background.guiTexture.pixelInset = new Rect(0, 0, screenwitdh, screenheight); print("height" + screenheight); print("width" + screenwitdh);

經過反復的編譯apk,安裝到手機,經過十幾次的反復終于嘗試出稍微完美的自適應,下面是完美的代碼:

using UnityEngine; using System.Collections;  public class start : MonoBehaviour {       public GUISkin mySkin;      private bool isSound1Button = false; 	private bool isSound2Button = true;     private AudioSource sound; 	 	 	private float screenwitdh; 	private float screenheight; 	 	public GUITexture background; 	public GUITexture title; 	 	void Awake() 	{         screenwitdh = Screen.currentResolution.width;         screenheight = Screen.currentResolution.height;         //改變背景的分辨率         background.transform.position = Vector3.zero;         background.transform.localScale = Vector3.zero;         background.guiTexture.pixelInset = new Rect(0, 0, screenwitdh, screenheight);           //title.transform.position = Vector3.zero;         //title.transform.localScale = Vector3.zero;         //坐標是以左下角為原點開始的,錨點也是左下角         float width = 400;         float height = 200;         title.guiTexture.pixelInset = new Rect(screenwitdh/2-width/2, screenheight-30-height, width, height);          print("height" + screenheight);         print("width:" + screenwitdh); 	}  	// Use this for initialization 	void Start ()  	{ 		sound = gameObject.GetComponent<AudioSource>(); 	} 	     void OnGUI()     {         //screenwitdh = Screen.width;         //screenheight = Screen.height;         GUI.Label((new Rect(10, 10, 100, 20)), "作者:丁小未");         GUI.Label((new Rect(10, 30, 100, 20)), "height:"+screenheight.ToString());         GUI.Label((new Rect(10, 50, 100, 20)), "widht:"+screenwitdh.ToString());  		         GUI.skin = mySkin;  		//這里的GUI坐標是以左上角為原點跟GUITexture的坐標不同,GUITexture屬性中是OpenGL坐標是從左下方開始為原點         if (GUI.Button(new Rect(screenwitdh/2-110, screenheight -250, 220, 66), "", GUI.skin.GetStyle("playbutton")))         {             Application.LoadLevel(1);         } 		if(GUI.Button (new Rect(screenwitdh/2-160,screenheight -185,320,66),"",GUI.skin.GetStyle("MoreButton"))) 		{ 			Application.OpenURL("http://blog.csdn.net/dingxiaowei2013");	 		} 		if(GUI.Button(new Rect(screenwitdh/2-100,screenheight -120,200,66),"",GUI.skin.GetStyle("CreditButton"))) 		{ 			Application.OpenURL("http://blog.csdn.net/dingxiaowei2013"); 		} 		 		if(isSound1Button) 		{ 			if(GUI.Button(new Rect(60,screenheight-60,30,41),"",GUI.skin.GetStyle("Sound1Button"))) 			{ 				sound.Play(); 				isSound1Button = false; 				isSound2Button = true; 			} 		} 		 		if(isSound2Button) 		{ 			if(GUI.Button(new Rect(60,screenheight-60,45,41),"",GUI.skin.GetStyle("Sound2Button"))) 			{ 				sound.Stop(); 				isSound1Button = true; 				isSound2Button = false; 			} 		}     } } 


效果圖

[unity3d]水果忍者-界面搭建
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涟源市| 铜山县| 阿鲁科尔沁旗| 祁阳县| 仁寿县| 牟定县| 扎囊县| 江安县| 南康市| 云和县| 盐津县| 芮城县| 英超| 福安市| 甘泉县| 广饶县| 石棉县| 辽中县| 建瓯市| 遵义县| 北京市| 文水县| 德化县| 当涂县| 高青县| 柳江县| 望谟县| 重庆市| 石柱| 兴业县| 亚东县| 民权县| 衡阳市| 朝阳县| 玛沁县| 罗定市| 汝州市| 晋中市| 宣汉县| 汤原县| 潞西市|