這一陣子需要用到虛擬 joystick 的功能,在 unity 的 Standard Assets (Mobile) 中已有 joystick.js 可用,可是習慣使用 c#, 這下就出問題了: 在c#中直接引用 Joystick 的 class, 發生了沒有定義的錯誤。在拜過Google大神後,發現以下重要資訊:
(以下原文出自 http://www.cnblogs.com/sicily/archive/2009/10/28/1591763.html )
JS文件必須是在 "Standard Assets"、 "Pro Standard Assets" 和 "Plugins" 這三個目錄中的任何一個里,而CS文件不能與JS文件在一個目錄中。原因是,這三個目錄里的腳本被最先編譯,"Editor"目錄里的稍后編譯,其他的腳本最后編譯。
因此把 joystick.js 移到上述目錄中即可 (如果都沒有,可以自建其中一個)。
2014年5月31日 星期六
2014年5月12日 星期一
Unity playmaker: photon network parsing error
當 import playmaker 時,有些人會出現下列錯誤:
Assets/Photon Unity Networking/PlayMaker/Actions/PhotonNetworkDestroy.cs(43,9): error CS8025: Parsing error
此時只要找尋網路上是否有人發佈 PhotonNetworkDestroy.cs 的內容,將其剪貼覆蓋原來的檔案內容即可 (或者自已重建一個同樣內容的檔案取代也可)。推測可能是因為該檔案內容有一些無法察覺的字元導致錯誤。
Assets/Photon Unity Networking/PlayMaker/Actions/PhotonNetworkDestroy.cs(43,9): error CS8025: Parsing error
此時只要找尋網路上是否有人發佈 PhotonNetworkDestroy.cs 的內容,將其剪貼覆蓋原來的檔案內容即可 (或者自已重建一個同樣內容的檔案取代也可)。推測可能是因為該檔案內容有一些無法察覺的字元導致錯誤。
Unity3d Asset store import 錯誤
自 Unity 的 Asset store 下載物件時,有時會出現如下的載入錯誤:
Error while importing package: Couldn't decompress package UnityEditor.AssetStoreContext:OpenPackage(String, String)
此時有可能是因為內定的下載目錄路徑中有中文而導致,可以到下列位置找尋已下載完成的 unitypackage:
C:\Users\使用者名稱\AppData\Roaming\Unity
找到後將其移往其他沒有中文的位置,再由 unity3d import 即可。
Error while importing package: Couldn't decompress package UnityEditor.AssetStoreContext:OpenPackage(String, String)
此時有可能是因為內定的下載目錄路徑中有中文而導致,可以到下列位置找尋已下載完成的 unitypackage:
C:\Users\使用者名稱\AppData\Roaming\Unity
找到後將其移往其他沒有中文的位置,再由 unity3d import 即可。
2014年5月9日 星期五
苗栗頭份後花園桐花秘境
每年四五月的桐花似雪是苗栗的一大勝事,看著桐花在身旁如雪花般掉落,真是有著如幻境般的詩意。可惜一般地點 (如客家大院) 一到假日就是一個塞爆,甚麼詩情畫意全化為烏有。今日介紹一個在頭份後花園的桐花秘境,有不少桐花可以欣賞,人也不多,可以考慮一遊。
這個秘境的入口其實也蠻好找的,可以從四季山莊一路往上,到了四季山莊會館右轉直行,到達最後會有一個幾乎是 T 型的路口,在路口向右看去,即可看到下面這個紅色吊橋。
從吊橋旁的入口即可進入老崎休憩步道。
入步道後不久,可遇此分叉口,左轉上吊橋,右方直行即可進入賞花秘境。
Unity3d 輸出 android apk
Unity3d 可以輸出成不同平台的應用程式,這是它一個相當強的的功能。基本上要輸出android apk 需要設定 android sdk 及 java sdk 兩項。android sdk 可以在 http://developer.android.com/sdk/index.html?hl=sk 下載,只要按下 Download the SDK 大大的按鈕就可以了。 而 java sdk 可以在 Oracle 網站 http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp 下載,找最新的下載就可以了。
不過目前 Unity3d 只支援 x86 的 java sdk (android sdk 可以使用 64-bit的),這點需要注意。
另外在 Unity3d 的 player settting 中 bundle indentifier 資料要設定一下(參考下圖),要不然會不能完成 apk.
目前所試的程式中,OnMouseEnter 與 OnMouseExit 都可移植至平板觸控沒有問題,而手指碰觸/離開 平板,使用 Input.GetMouseButton(0) 也可以對應到滑鼠左鍵按下/放開 的情況,所以應該不少程式可以不用修改就直接轉成 android app 使用了。
不過目前 Unity3d 只支援 x86 的 java sdk (android sdk 可以使用 64-bit的),這點需要注意。
另外在 Unity3d 的 player settting 中 bundle indentifier 資料要設定一下(參考下圖),要不然會不能完成 apk.
目前所試的程式中,OnMouseEnter 與 OnMouseExit 都可移植至平板觸控沒有問題,而手指碰觸/離開 平板,使用 Input.GetMouseButton(0) 也可以對應到滑鼠左鍵按下/放開 的情況,所以應該不少程式可以不用修改就直接轉成 android app 使用了。
2014年5月8日 星期四
網站使用圖片來源註記
標題中使用的圖片
來源: http://big5.xinhuanet.com/gate/big5/news.xinhuanet.com/tech/2013-06/03/c_124801282.htm
來源: http://big5.xinhuanet.com/gate/big5/news.xinhuanet.com/tech/2013-06/03/c_124801282.htm
Unity3d Trail Renderer 的使用技巧
Unity3d 中的 Trail Renderer 可以自動繪出物件移動的軌跡,可是當我們將 Trail Renderer 的 enabled 設定為 false 時,只能暫時停止軌跡的繪製,但是將 enabled 設定為 true時,就會將之前未繪出的軌跡一併繪出,是否可以只畫出 enabled=true之後的軌跡呢? 答案是肯定且簡單的,只要將 Trail Renderer 的 time 設定為 0, 它就不會保留之前的軌跡,而當程式中將 enabled 設為 true 時,也將 time 設定為所需要延遲消失的時間即可。
private TrailRenderer tr;
...
// 取得子物件中的 TrailRenderer 元件
tr = bird0.GetComponentInChildren <TrailRenderer>();
// 啟用取得的 TrailRenderer元件
tr.enabled = true;
// 設定軌跡消失延遲時間 (seconds)
tr.time = 5;
而如果希望物件在發生碰撞後,及不要再繪出軌跡,但又要將之前軌跡留在畫面上,就不能將 enabled 設為 false, 因為這樣會使所有軌跡立即消失。
解決方法是將 TrailRenderer掛在一個空物件上,而此空物件則成為主要物件的子物件,因此可以畫出主物件的移動軌跡。當發生碰撞時,則將此空物件脫離主物件,而由於空物件沒有質量,所以會立即停止移動,軌跡也就停止了。
// 以下掛在 TrailRenderer所屬空物件的父物件上
void OnCollisionEnter(Collision collision)
{
// 與所有子物件脫離
transform.DetachChildren ();
//停止物件移動速度
transform.rigidbody.velocity = new Vector3 (0, 0, 0);
Destroy (gameObject, 2);
}
}
private TrailRenderer tr;
...
// 取得子物件中的 TrailRenderer 元件
tr = bird0.GetComponentInChildren <TrailRenderer>();
// 啟用取得的 TrailRenderer元件
tr.enabled = true;
// 設定軌跡消失延遲時間 (seconds)
tr.time = 5;
而如果希望物件在發生碰撞後,及不要再繪出軌跡,但又要將之前軌跡留在畫面上,就不能將 enabled 設為 false, 因為這樣會使所有軌跡立即消失。
解決方法是將 TrailRenderer掛在一個空物件上,而此空物件則成為主要物件的子物件,因此可以畫出主物件的移動軌跡。當發生碰撞時,則將此空物件脫離主物件,而由於空物件沒有質量,所以會立即停止移動,軌跡也就停止了。
// 以下掛在 TrailRenderer所屬空物件的父物件上
void OnCollisionEnter(Collision collision)
{
// 與所有子物件脫離
transform.DetachChildren ();
//停止物件移動速度
transform.rigidbody.velocity = new Vector3 (0, 0, 0);
Destroy (gameObject, 2);
}
}
2014年5月7日 星期三
Unity3d 中如何取得其他 script 中的變數 (C#)
假設在unity3d 中有一script "disp.cs", 此 script 中有一變數 mystr, 而 disp.cs 掛在一個叫 dispstr的 prefab 物件上。如果今天有一個 control.cs 的程式要產生 dispstr的物件,而且要改變此物件上掛的 disp.cs 裡的 mystr 變數值,可以考慮以下程式片段:
private disp myscript1;
private GameObject mydigit1;
// Use this for initialization
void Start () {
// 產生 dispstr 物件
mydigit1 = Instantiate (dispstr, new Vector3 (6.2f, 5.35f, -0.1f), Quaternion.identity) as GameObject;
// 取得物件上的 disp script
myscript1 = mydigit1.transform.GetComponent<disp> ();
//設定 script 裡的變數
myscript1.mystring = "";
private disp myscript1;
private GameObject mydigit1;
// Use this for initialization
void Start () {
// 產生 dispstr 物件
mydigit1 = Instantiate (dispstr, new Vector3 (6.2f, 5.35f, -0.1f), Quaternion.identity) as GameObject;
// 取得物件上的 disp script
myscript1 = mydigit1.transform.GetComponent<disp> ();
//設定 script 裡的變數
myscript1.mystring = "";
2014年4月13日 星期日
圖片解析度調整,降低圖片大小
現在 3C產品突飛猛進,連手機照相機也動輒達到千萬畫素等級,部落格分享實在沒必要放那麼大的照片,因此如何降低分享圖片的大小,倒也有其用途。
1. Microsoft 2010 picture manager:
可以批次調整圖片大小: 選取圖片 -> 右鍵: 編輯圖片 -> 調整大小,即可調整大小,記得變更後要儲存圖片才算 ok.
2. Google Picasa:
選好圖片 -> 右鍵:上傳至 Google+ 相簿 -> 選內定的最適合用於網路分享,圖片即會自動調整大小。
1. Microsoft 2010 picture manager:
可以批次調整圖片大小: 選取圖片 -> 右鍵: 編輯圖片 -> 調整大小,即可調整大小,記得變更後要儲存圖片才算 ok.
2. Google Picasa:
選好圖片 -> 右鍵:上傳至 Google+ 相簿 -> 選內定的最適合用於網路分享,圖片即會自動調整大小。
3. 在 Blogger 中上傳圖片,似乎也會自動調整 size,可以觀察看看。
仙山遊記
這是昨天的遊記,但是折騰一個早上,晚上實在不想動了...
一早預計前往苗栗南庄的神仙谷,進入山區後,發現道路崩塌多處,後來還遇到工程車翻覆,等待清除後通過的場景,心中可是有些忐忑。果然到了入口停車場,才發現因為102/7月颱風重創,預計要等到103/10才會開放 (入口店家說應該 103/6 就可) ...
一時過於失望,竟然忘了拍照,果然還不夠格當個部落客...
臨時決定轉往仙山登山,因為幾年前曾經去過,對其山頂的一段 "攀爬攻頂" 的印象頗深,當時就說還要再來。
11:24 到達仙山靈洞宮
11:53 階梯直上三角點,到達往神仙縱走路線的 "攀爬攻頂"
12:04 怎麼還沒到頂? 回望來時路... (相機已約略往下 45 度拍攝,所以看不出陡峭程度)
12:05 終於到達頂點


12:25 下來後,回到分叉點,抉擇是原路下山? 還是走和上山不同的路 (往雲洞宮)? 雖然兩腳已漸不聽使喚,還是本著嘗鮮的心態: 走不一樣的路吧 ...
這個選擇不算對,這邊的路更難走,懷念上來的階梯路...
中間經過仙洞
回首下來的路已隱沒於荒煙蔓草之中...
12:49 終於下到停車場旁,這次沒有想下次再來攀爬攻頂的念頭了,畢竟年紀也不小了 :(
回程中經過仙山仙草名店,發現他已經有專用停車場了,既然停車方便(停車場不大,大概可以停個十多部自小客吧),就下來吃吃。
吃完才發現忘了拍照。
只好先敘述一下,下回再補圖吧。
我和老婆大人看到menu, 著實有點覺得價格並不親民。點了仙草芋圓紅豆冰,有冰和去冰各一碗,份量也不多,味道嘛個人感受不同,我們是覺得還好吧。
2014年4月12日 星期六
免費空間使用
http://www.qov.tw
10G free space
缺點: 無法自己指定控制台的 user name
優點: 付費帳戶便宜: US$ 3.99 or US$6.99 / month
http://www.2freehosting.com
20G free space
後台: http://cpanel.2freehosting.com/
缺點: 有CPU使用的限制,使用dreamweaver連線,一下就超過限制
Free Hosting 資訊 : http://www.free-webhosts.com/
10G free space
缺點: 無法自己指定控制台的 user name
優點: 付費帳戶便宜: US$ 3.99 or US$6.99 / month
http://www.2freehosting.com
20G free space
後台: http://cpanel.2freehosting.com/
缺點: 有CPU使用的限制,使用dreamweaver連線,一下就超過限制
Free Hosting 資訊 : http://www.free-webhosts.com/
2014年4月11日 星期五
訂閱:
文章 (Atom)