你好,我正在開發一個Vuforia AR圖像識別應用程序。如何讓圖像識別後出現的東西保持原樣? (unity3d vuforia)
但是,我希望在掃描圖像時出現一個對象,並且該圖像保持獨立(不受掃描圖像位置的影響,並且在相機中具有固定的座標)。
我該如何做到這一點?
這是通過腳本完成的嗎?如果是這樣,我該如何編寫它?我將在哪裏添加腳本組件?
我試過到目前爲止
只是跟着this video
但使用不同的目標和對象
,我只是想出現確認後是獨立的對象
謝謝提前。
你好,我正在開發一個Vuforia AR圖像識別應用程序。如何讓圖像識別後出現的東西保持原樣? (unity3d vuforia)
但是,我希望在掃描圖像時出現一個對象,並且該圖像保持獨立(不受掃描圖像位置的影響,並且在相機中具有固定的座標)。
我該如何做到這一點?
這是通過腳本完成的嗎?如果是這樣,我該如何編寫它?我將在哪裏添加腳本組件?
我試過到目前爲止
只是跟着this video
但使用不同的目標和對象
,我只是想出現確認後是獨立的對象
謝謝提前。
我不知道你是否仍然關注這篇文章。
這是你的答案:
我該如何做到這一點?
通過將3D模型傳輸到相機。
這是通過腳本完成的嗎?
是的。
如果是這樣,我怎麼能腳本呢?
首先你需要知道你想要什麼樣的「棒」。有沒有觸發按鈕,或者當照相機離開標記時它會粘住?
如果有一個觸發按鈕,您可以編寫腳本,例如點擊/點擊按鈕時,它會將3D(GameObject)父級更改爲相機。
my3D.transform.SetParent(Camera.main.transform);
如果你想讓它這樣,當你移動你的相機去, 3D模型自動粘貼到相機,它將複雜稍微 。您需要訪問VuforiaImageTarget對象中的 ImageTargetTrackableEventHandler.cs。 尋找一個名爲OnTrackingLost()的函數。相反的:
Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true); Collider[] colliderComponents = GetComponentsInChildren<Collider>(true); // Disable rendering: foreach (Renderer component in rendererComponents) { component.enabled = false; } // Disable colliders: foreach (Collider component in colliderComponents) { component.enabled = false; }
您可以通過禁用它去掉整個代碼塊,並在 腳本的頂部添加在
[SerializeField] GameObject my3D;
和OnTrackingLost()函數,把這個裏面的代碼:
my3D.transform.SetParent(Camera.main.transform);
之後,去到Inspector視圖,點擊ImageTarget,有 將是這樣的:
簡單地從層次結構視圖所示的可變圖像 拖動3D。
我在哪裏添加腳本組件?
如果您使用「按鈕」方法,只需創建一個空的gameobject 並將腳本附加到它。
希望它有幫助,因爲vuforia的支持非常有限。 :)
唯一能爲我工作的是在腳本開始時添加一個布爾變量,並使OnTrackingLost()進入時,布爾變爲true。我不知道我是否解釋自己。
首先創建在開始時:
private bool bol = false;
然後在功能:
private void OnTrackingLost()
{
Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);
if (!bol) {
// Disable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = false;
}
// Disable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = false;
}
bol = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
}
,你嘗試過什麼其他到目前爲止..?你可以請你發佈你的代碼嗎? – user1140237
我只跟着一個視頻沒有做任何編碼,因爲我不知道從哪裏開始 – Saine