2016-07-11 1 views
0

Unity5와 Gvr.를 사용하고 있습니다. 사용자가 버튼을 5 초 동안 쳐다 보면서 버튼을 켭니다. 그러면 버튼이 활성화됩니다. 아무도 도와 주시겠습니까? 나는 레티클을 구현했고 버튼을 감지합니다. 어떻게 그리고 어디서 시간 트리거를 추가해야하는지 잘 모르겠습니다.GVr 및 단일성을 사용하여 시간 트리거 된 시선 입력을 기반으로 UI 버튼을 선택하는 방법은 무엇입니까?

+0

보유하고있는 코드를 게시하십시오. 어쩌면 누군가 당신이 다음에해야 할 일을 알아낼 수 있습니다. – Programmer

답변

0

하여 버튼 객체에이 스크립트를 첨부 님의

StartCoroutine(YourControllerScript.control.LoadLevel(sceneToLoad)) 

을 :

[RequireComponent(typeof(Button))] 
public class InteractiveItem : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler 
{ 
    public Image progressImage; // add an image as child to your button object and set its image type to Filled. Assign it to this field in inspector. 
    public bool isEntered = false; 
    RectTransform rt; 
    Button _button; 
    float timeElapsed; 
    Image cursor; 
    // Use this for initialization 
    void Awake() 
    { 
     _button = GetComponent<Button>(); 
     rt = GetComponent<RectTransform>(); 

    } 

    float GazeActivationTime = 3; 

    void Update() 
    { 
     if(isEntered) 
     { 
      timeElapsed += Time.deltaTime; 
      progressImage.fillAmount = Mathf.Clamp(timeElapsed/GazeActivationTime,0,1); 
      if(timeElapsed >= GazeActivationTime) 
      { 
       timeElapsed = 0; 
       _button.onClick.Invoke(); 
       progressImage.fillAmount = 0; 
       isEntered = false; 
      } 
     } 
     else 
     { 
      timeElapsed = 0; 
     } 
    } 

    #region IPointerEnterHandler implementation 

    public void OnPointerEnter (PointerEventData eventData) 
    { 
     isEntered = true; 
    } 

    #endregion 

    #region IPointerExitHandler implementation 

    public void OnPointerExit (PointerEventData eventData) 
    { 
     isEntered = false; 
     progressImage.fillAmount = 0; 
    } 
    #endregion 
+0

: 고마워. :) 너무 많은 문제가 아니라면, 나는 Ui 버튼에서 Gvr 시선을 사용하고 있습니다. 버튼에있는 레티클. 그럼 커서가 내 사건의 레티클이 될거야. 내가 어떻게 수정할 수 있니? 나는 "typename 또는 네임 스페이스 이미지를 찾을 수 없다"는 말을 듣는다. 그리고 모두가 코드로 답장하지는 않습니다. –

+0

스크립트 시작시'UnityEngine.UI; '를 사용하십시오. 그리고 GVR 시선이 잘 작동한다면,이 스크립트를 버튼에 붙이면'OnPointerEnter','OnPointerExit' 등의 이벤트를 처리해야합니다. 다른 문제가 있는지 알려주십시오. 답변을 정확하게 표시하고 투표하십시오 :) –

0

IGvrGazeResponder를 구현하고 여기에서, 당신은 OnGazeTrigger() 함수를 재정의해야하고 당신이 쓸 수있는 스크립트를 작성 원하는 장면로드

+0

몇 가지 샘플 코드로 설명 할 수 있습니까? 개요 만 제공합니다. 공동 작업에 익숙하지 않습니다. 감사합니다. –

+0

코 루틴은 장면을로드 할 때 사용할 수있는 좋은 기능입니다 주어진 시간 동안 프레임이나 장면을 중지하십시오. [email protected]에서 코드 및 관련 문제를 보내 주시겠습니까? –

관련 문제