作者Ahtram (Ahtram)
看板GameDesign
標題Re: [請益] unity 按鈕跟時間的問題
時間Wed Sep 4 18:11:45 2013
※ 引述《flyfeather92 (老娘)》之銘言:
: 小妹不才 目前是unity新手
: 我想寫一個在特定秒數會跳出button的裝置
: var mySkin : GUISkin;
: var myWeapon : GameObject;
: var WeaponClosed : boolean = false;
: var btnTexture : Texture;
: function OnGUI()
: {
: print (Time.time);
: // Waits 6 seconds
: yield WaitForSeconds (6);
: GUI.skin = mySkin;
: if(GUI.Button(Rect(400, 40, 160, 30),"O"))
: {
: }
: else if(GUI.Button(Rect(400, 80, 160, 30), "X"))
: {
: }
: }
: 可是在GAME裡面連BUTTON都跳不出來
using UnityEngine;
using System.Collections;
public class ClassABC : MonoBehaviour {
//設定幾秒按鈕會出現
public float m_time = 5.0f;
//是否顯示按鈕旗標
private bool m_showBtn = false;
void Start () {
//請愛用Invoke, 可以在設定秒數內呼叫一個你的Function
Invoke("ShowButton", m_time);
}
void Update () {
//檢查目前是否顯示按鈕?
if (m_showBtn) {
//是的話才顯示
if(GUILayout.Button("Hide me")) {
HideButton();
}
}
}
private void ShowButton() {
m_showBtn = true;
}
private void HideButton() {
m_showBtn = false;
}
}
: 之後也想請問各位大大 如果我在if裡面要移動特定的物件該怎麼做?
平滑移動? 還是瞬間移動? 移動3D物件還是2D物件?
瞬移3D物件最簡單
myObject.gameobject.transform.position = new Vector3(10.0f, 10.0f, 10.0f);
平滑移動物件請愛用itween或者其他tween addon, 會比手工刻方便很多。
http://itween.pixelplacement.com/index.php
至於要移動2D物件...前面的大大有說了,要做真正有使用性的UI請勿用OnGUI
OnGUI非常建議只拿來做測試用介面,按下去會顯示遊戲數值那種介面。
要設計真正的遊戲介面在當前的版本你沒有其他選擇,要去買NGUI這種外掛來研究。
除非你強到可以寫真正的2D GUI系統:p
在4.3即將出現或許可以用的內建GUI系統就是了...要免費的可以等4.3
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.27.82.222
推 chenglap:說了幾年都沒做好, 我今次不信他們... 09/04 18:35
推 chargo:這次有挖走NGUI的作者 應該比較有機會....大概吧XD 09/04 21:43
推 hirabbitt:推HOTween 09/05 16:03
推 hala932:原來NGUI的作者被挖走了!! 酷耶~~ 09/07 23:23