Proplem in move 3D AR object from point to point at run time
Hi all
I am a new user in Unity and I don't have experience in it. I try create Augmented Reality game, and I have 3D Boy model. I was create Virtual Button and I want when the user click in the Button at run time the boy move at to that button.
I wrote many codes but the boy does'nt move and I dont know what is the proplem . So please if you can help me
this is my code but is not work :(
using UnityEngine; using System.Collections.Generic; using Vuforia;
public class VirtualButtonEventHandler : MonoBehaviour, IVirtualButtonEventHandler {
// Private fields to store the models
private GameObject model_Lock;
private GameObject model_Boy;
private GameObject btn_1;
public Transform desPos;
public float speed;
Vector3 myPos;
Vector3 targetPos1;
/// Called when the scene is loaded
void Start() {
VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
for (int i = 0; i < vbs.Length; ++i) {
// Register with the virtual buttons TrackableBehaviour
vbs[i].RegisterEventHandler(this);
}
// Find the models based on the names in the Hierarchy
model_Lock = transform.Find("Lock Silver").gameObject;
model_Boy = GameObject.Find("Timmy_HIGH");
btn_1 = transform.FindChild("LockButton").gameObject;
speed = 3f;
model_Lock.SetActive(true);
model_Boy.SetActive (true);
btn_1.SetActive(true);
myPos = model_Boy.transform.position;
targetPos1 = btn_1.transform.position;
}
/// <summary>
/// Called when the virtual button has just been pressed:
/// </summary>
public void OnButtonPressed(VirtualButtonAbstractBehaviour vb) {
//Debug.Log(vb.VirtualButtonName);
Debug.Log("Button pressed!");
model_Lock.SetActive(false);
model_Boy.transform.position = Vector3.MoveTowards( myPos, targetPos1, speed * Time.deltaTime);
model_Boy.transform.position = btn_1.transform.position;
Debug.Log("Boy Position"+model_Boy.transform.position);
/*
switch(vb.VirtualButtonName) {
case "btnLeft":
btn_1.SetActive(false);
btn_2.SetActive(true);
model_1.SetActive(false);
model_2.SetActive(true);
break;
case "btnRight":
btn_1.SetActive(true);
btn_2.SetActive(false);
model_1.SetActive(true);
model_2.SetActive(false);
break;
// default:
// throw new UnityException("Button not supported: " + vb.VirtualButtonName);
// break;
}
*/
}
/// Called when the virtual button has just been released:
public void OnButtonReleased(VirtualButtonAbstractBehaviour vb) {
Debug.Log("Button released!");
}
}
thank you in advance
Your answer
Follow this Question
Related Questions
Simple gameobject animation not showing in play mode (no script, Keyframes) 0 Answers
applying walk / run animation using anim.SetBool 1 Answer
Timed Animations for VR 0 Answers
Transform.position returning innacurate vector3 for animated objects 0 Answers
Animator Position VS Script Vector 3 0 Answers