iOS 版本可以參考:http://lolikitty.pixnet.net/blog/post/193807692
本程式碼使用 Android Etcetera Plugin 插件,如果沒有的話可以到 Asset Store 購買 (這不是廣告啦)
Asset Store:https://www.assetstore.unity3d.com/en/#!/content/2741
該範例執行結果:
1. 一開始一片空白,我們必須點選選擇圖片按鈕
2. 按下按鈕後,會跳出你要開啟的App工具
3. 選擇好圖片後,就會在該物件上顯示貼圖啦~
程式碼:
using UnityEngine;
using System.Collections;
using Prime31;
public class MyTest : MonoBehaviour {
public GameObject testPlane; // 外部建立一個物件,並把他丟進來,之後會以該物件上貼圖
#if UNITY_ANDROID
void Start(){
// 使用該插件之前都需要初始化
EtceteraAndroid.initTTS();
}
void OnEnable(){
// Listen to the texture loaded methods so we can load up the image on our plane
EtceteraAndroidManager.albumChooserSucceededEvent += imageLoaded;
EtceteraAndroidManager.photoChooserSucceededEvent += imageLoaded;
}
void OnDisable(){
EtceteraAndroidManager.albumChooserSucceededEvent -= imageLoaded;
EtceteraAndroidManager.photoChooserSucceededEvent -= imageLoaded;
}
void OnGUI(){
if( GUI.Button(new Rect(0,0,200,100), "選擇圖片")){
EtceteraAndroid.promptForPictureFromAlbum( "a" ); // 字串不能為空
}
}
// 載入圖片
public void imageLoaded(string imagePath){
// 後面的 1f 代表解析度的意思,1 為最大
EtceteraAndroid.scaleImageAtPath( imagePath, 1f );
testPlane.renderer.material.mainTexture = EtceteraAndroid.textureFromFileAtPath( imagePath );
}
#endif
}

版主你好: 我今天下載您說的套件使用 不過 當我轉成apk 輸出後 在手機裡點擊選取照片 程式跳出"自動結束"的訊息! 就連我用他自帶的範例也是! 請問是哪個環節出錯了呢@@ 有要先設定什麼嗎?
換一台手機或設備試試?
*****
*****
我忘記我設定悄悄話 自己也看步道... 想問問版主 對於 unity 開發 android app 要上傳手機照片到Parse.com 想向版主問問這個觀念 目前線上英文資料真的很少 三方中間的邏輯我有點混亂 是我要在unity 上面寫java 控制android 還是 在這個套件cs檔當中(例如版主範例) 寫Parse unity的官方寫入資料庫程式就好? (目前後者方法在實體手機上都沒反應@@) 希望版主可以給我一點指點 這是個大瓶頸@@
我沒用過 Parse,所以很抱歉不能給你這方面的建議... 因為我的 Server 都是自己寫... 不過...如果你要寫 Java Server 我這裡倒是有很多資源 : D 例如... Jetty ES https://github.com/Lolikitty/JettyES
版主您好~ 我目前在做類似3d娃娃換臉的專題 使用此插件能順利切換圖片 但是另一個場景的高通擴增實境(Vuforia)卻失效 想請問兩插件是否不相容,並且Etcetera沒有替代的插件呢?
這種插件很多喔,不過我想你應該是沒有修改 Android XML 設定檔 另外插件還有這種的,我個人也覺得很好用 可以開啟 圖片、聲音、影片 https://www.assetstore.unity3d.com/cn/#!/content/5362
非常感謝你!!! 仔細一看,果然是Android XML 設定檔沒有改的問題,以解決^ ^ 因為對於這部分比較不熟,沒有想到這方面 謝謝你歐~ 另外一個插件還未嘗試,但很高興能知道還有這個資源!
很高興幫助到你 : D
版主你好,我照你的方法試做,但是最下面一行 testPlane.renderer.material.mainTexture = EtceteraAndroid.textureFromFileAtPath( imagePath );的EtceteraAndroid.textureFromFileAtPath出錯,我在EtceteraAndroid裡面找不到textureFromFileAtPath,不知道是不是我的插件的問題?還請版主幫忙解答。感謝!