UI만들기

UI를 추가하면 Canvas가 자동으로 추가되는데 Canvas Scaler가 있어 기기에 따라 UI의 크기가 자동으로 변경된다.

우리는 이번에 해상도를 다음과 같이 바군다.
Canvas에  +UI>Legasy>Button을 추가

위치는 앵커를 이용 리퍼런스를 잡아준다.

Ctrl-D로 이미지를 복사

버튼에 넣어줌

 

버튼에 적용할 함수는 public으로 만들어야함.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARCore;

public class UIManager : MonoBehaviour
{
    public ARFaceManager faceManager;

    public void ToggleMask()
    {
        //faceManager컴포넌트에서 생성된 Face 오브젝트 순회
        foreach(ARFace face in faceManager.trackables)
        {
            // 생성된 face 오브젝트 순회 
            if(face.trackingState == UnityEngine.XR.ARSubsystems.TrackingState.Tracking)
            {
                //face 오브젝트 상탤글 반대로 변경
                face.gameObject.SetActive(!face.gameObject.activeSelf);
            }
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

마스크 버튼을 선택하고

Inspector의 OnClick() +를 눌러 Object에 Script가 들어있는 Canvas를 끌어다 놔준다. (주의:UIManager Script를 끌어다 놔도 들어는 가는데 그럼 원하는 함수가 안보인다. 꼭 스크립트가 들어있는 객체를 끌어다 놔줘야 한다.)

그런다음 RuntimeOnly옆을 눌러 List  UIManager>ToggleMask()를 선택한다. 

처음시작시 마스크가 안나오기 비활성화 한다.

하이라키에서 CreateEmpty만들고 이름을 MyFAce

Add component Mesh filter, Mesh Renderer, MeshCollider를 추가한다.

AR Face와 AR Face Mesh Visualizer도 추가한다.

 

 

M_Ghost 머터리얼을 만들

MyFaceModel  Materials에 방금만든 M_Ghost를 끌어다 Albedo 왼쪽에 놓는다.

 

 

MyFaceModel은 지워준다.

 

Create empty object

 

FaceVideoRT로 명명후 Target Text에 M_FaceVideo

 

Create Material M_FaceVideo만들고 Albedo왼쪽에 FaceVideoRT를 넣어준다.

My FaceMode 프리팹을 선택하고

Materials를 M_FaceVideo로 변경

MyFaceMode Frefab의 텍스처를 바궈 video image를 동적으로 바꿔보자.

배열을 만든다.

public Material[] faceMat;

 

버튼이 눌리면 머터리얼을 바꿀 퍼블릭함수를 만든다.

    public Material[] faceMats;
    public void SwitchMaterial(int num)
    {

    }

Inspector를 보면 FaceMats가 보인다 +를 2번 누른다. 방이 2개 생긴다.

 

Canvas Button Image를 선택하고 함수를 맞춰준다.  Inspector에서 OnClick() 함수를 SwitchMaterial로 변경하고  매개변수를 0 으로 놔둔다.

하이라키 Cavas Button Video를 선택하고 Inspector에서 OnClick() 함수를 SwitchMaterial로 변경하고  매개변수를 1로 선택한다.

 

FindDetection 스크립트를 만들자.

 

+ Recent posts