2016年9月8日 星期四

Unity3D No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').


在Unity3D 5.3 加上google play service的功能會先去下載下面的plugin
https://github.com/playgameservices/play-games-plugin-for-unity
不意外的,又有如標題的錯誤了.

大部份解法都是去android sdk目錄下的 extras\google\google_play_services 找檔案來用,但我實在是找不到那些神奇的檔案。
不過下面這個網址倒是有不一樣的解法,可以參考看看
https://app-c.net/tutorial/unity/version5_2/

他是直接把 @integer/google_play_services_version 這變數換成字串,如下
<meta-data android:name="com.google.android.gms.version"
android:value="4323000" />

到這裡可以編釋了,過了一段時間回頭看這個值又變回@integer/google_play_services_version了,估計是在
Window->GooglePlayGames->setup->Android setup...
的設定完成後就變回去了,所以說不定一開始把這個欄位刪除也可以先編釋。

順便提一下使用EnableSaveGames()碰到的問題:
在設定PlayGamesClientConfiguration時,有加上EnableSaveGames(),而且
在google play開發平台上該設定的都有設定,但登入後遊戲就是會跳掉,那麼可參考如下:
https://developers.google.com/games/services/console/configuring
其實就是進入手機上的設定->應用程式->Google Play 服務->管理空間->清除所有資料。
就沒問題了。害我以為改錯什麼,又浪費了我好幾個小時...

2016年7月29日 星期五

FastCGI 處理序超過設定的活動逾時

  這是在查 "IIS 500 內部伺服器錯誤" 時碰到的,雖然解法一狗票,但第一步還是要先把
IIS設定內的 "錯誤網頁->編輯功能設定->本機要求的詳細錯誤及遠端要求的自定錯誤網頁",
改選成詳細錯誤。
  然後就看到標題的錯誤訊息了,那要怎麼設定呢?
若IIS的設定UI若有fastCgi的項目就可以進去設定了,但我的IIS沒有。
所以先用記事本打開c:\Window\System32\inetsrv\config\applicationHost.config
先找到 fastCgi

<fastCgi>
    <application fullPath="C:\PHP5\php-cgi.exe" />
</fastCgi>
後面再加上參數,改成如下:

<fastCgi>
    <application fullPath="C:\PHP5\php-cgi.exe" idleTimeout="900" activityTimeout="180" requestTimeout="10000" instanceMaxRequests="10000" />
</fastCgi>

那些數值可以自行調整,改好後存檔,在命令列執行iisreset重啟IIS後就可以了。

2016年7月7日 星期四

自定Unity3D選單

以下為Unity3D 5.3版。

在Unity3D內加上自定的選單是很簡單的,以C#為例:

1.選擇 Assets->Create->C# Script

2.Script內容改成如下:

using UnityEngine;
using System.Collections;
#if UNITY_EDITOR
using UnityEditor;
#ENDIF

#if UNITY_EDITOR
[AddComponentMenu("my menu 1/my menu 2")]
#endif
public class MyMenu : MonoBehaviour {
    #if UNITY_EDITOR
    [MenuItem("my menu 3/ my menu 4")]
    #endif
    static void mytest(){
    }

    void Start () {

    }
    void Update () {

    }
}

然後就可以在Component選單看到新的 my menu 1 子項目,

以及新的 my menu 3 選單。


我做了個實驗,在Assets下建了新的資料夾,然後把Script放進去後,

只剩 my menu 3 項目有出現。

疑?AddComponentMenu這個功能失敗了嗎?不過把Script放回Assets資料夾後,

這個功能又正常了,所以要注意一下放的位置。

2016年7月6日 星期三

MAC下的android開發環境

先下載JDK,在終端機上輸入:
java -version
若沒裝JDK會如下顯示












這時選更多資訊,會到java的官網上,去選擇下載Mac OS X x64版本的JDK






















下載完成後就是安裝了,裝好了再用java -version確認一下就可以了。
















然後到android官網http://developer.android.com/sdk/index.html下載Android Studio,按下綠色按紐即可














安裝時沒什麼大問題,這邊我也把Virtual Device給裝上去,下一步也有一些選項,反正我都是全選。

















安裝到一半出現了錯誤訊息:The following SDK component was not installed: sys-img-x86-addon-google_apis-google-21
,Retry給它按下去讓它再裝下去,直到Finish可以按為止。
安裝完成後開了一個新專案測試了一下,還算順利,只是接上手機時沒有一下就抓到,要等一下,這樣就可以開發了。


Unity3D在Mac上開2個專案

  想同時在Unity3D開啟2個專案,在Edit->preference下的
Show Project Wizard at Startup項目打勾就可以了,不過在5.3版上找不到這個項目,在MAC環境下找到另一種方式。
1.打開終端機

2.cd ~                             進入使用者目錄

3.sudo vi .bash_profile      編輯bash_profile(不習慣用vi編輯的可改用別種編輯器)

4.加入以下2行後存檔(alias 後面的 un 和 mono 可改成自己習慣的名稱)
  alias un="/Applications/Unity/Unity.app/Contents/MacOS/Unity -projectPath"
  alias mono='open -n /Applications/Unity/MonoDevelop.app'

5.回到使用者目錄輸入 source .bash_profile

以後在終端機下輸入 un 就可以打開另一個專案了