2017-03-23 12 views
0

enter image description here我正在使用Vuforia和統一爲我的AR應用程序。其中有超過2個模型/圖像目標。放大和縮小我使用了Lean Touch。 但問題是兩者都會縮小捏。 我只想要一個縮放當前檢測到的。或 我想重置我的3D模型/模型的OnTrackingLost()函數在DefaultTrackableEventHandler中的縮放組件,以便當它檢測到其他原始縮放時顯示的其他一個(如我設置的最大模擬圖像檢測到一個)。 謝謝!在統一和vuforia圖像目標中的模型重置縮放

編輯:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class rscale : MonoBehaviour { 

    // Use this for initialization 
    void Start() { 

    } 

    // Update is called once per frame 
    void Update() { 
     if (Input.GetKey (KeyCode.V)) { 
      transform.localScale = new Vector3 (4f, 4f, 4f); 
      Debug.Log("scaling to 4"); 
     } 
    } 
} 

但這個簡單的腳本也不起作用?

回答

0

你的方法做縮放,添加:

if(this.gameObject.activeSelf == false){ return; } 
// Scaling process 

所以,如果你運行的所有對象的代碼,只有活躍的會受到影響。考慮到在丟失跟蹤時停用對象。

+0

所有活動都在初始化! – Nitesh

+0

這一切都歸功於動畫構件......我刪除了動畫構件並將其附加到新的遊戲對象中......但是隨後出現新問題......請看看這個問題https://stackoverflow.com/questions/43029721/animate-object-when-its-animator-is-in-different-gameobject – Nitesh

0

這裏的問題在於,Vuforia不會停用附加到圖像目標的3D對象,它只會禁用其渲染器組件和對撞機,因此您無法將過濾器請求遊戲對象的活動狀態爲@Everts消化。

相反,您可以在腳本中有公共參考這兩個3D遊戲對象的方法,以及將兩個對象的比例設置爲1的方法,每次丟失圖像目標時都應該調用該函數,對象將他的比例設置爲1。

另一個解決方案是,Vuforia知道找到了這個標記,所以當你檢測到一個標記時,你可以激活設置該遊戲對象成爲遭受規模效應的標記。

+1

事實上,如果使用DefaultTrackableEventHandler,它的確如此。我傾向於重寫它們,以便取消激活對象。 – Everts

+0

我簡單地附加了一個C#腳本重新調整到我的3D模型: 'using System.Collections; using System.Collections.Generic; 使用UnityEngine; 公共類rscale:MonoBehaviour { \t //使用這個初始化 \t無效的start(){ \t \t \t} \t \t //更新是每幀調用一次 \t無效更新(){ \t \t如果(Input.GetKey(KeyCode.V)){ \t \t \t transform.localScale =新的Vector3(4F,4F,4F); (「縮放到4」); \t \t} \t} }' 但這也行不通? – Nitesh

+0

給我解決方案,採取所有的3D模型的初始值(比如說10)和OnTrackingLost()調用將它們重置爲它們的初始值.. 查看編輯的問題 – Nitesh

相關問題