Как сделать так, чтобы камера AR распознавала лица куба почти так же, как 57 север ? Мне удалось показать AR на кубе и запустить действие (показывать сферу), но я не могу сделать его активным, только когда камера AR направлена к кубу (независимо от того, как долго он находится к нему) и когда он перемещается к другой грани куба, он отключает предыдущее действие и разрешает только ту сторону куба, к которой обращена Камера.
Я просто хочу, чтобы он активировался только на одной стороне вместо несколько сфер одновременно.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class VectorDetect : MonoBehaviour
{
private Transform ARcam;
private Transform FrontFace;
public GameObject FrontObj;
private Transform RightFace;
public GameObject RightObj;
private void Awake()
{
FrontObj.SetActive(false);
RightObj.SetActive(false);
}
void Start()
{
ARcam = GameObject.FindWithTag("MainCamera").transform;
FrontFace = GameObject.FindWithTag("FRONT").transform;
RightFace = GameObject.FindWithTag("RIGHT").transform;
}
void Update()
{
//FRONT
if (FrontFace)
{
Vector3 forward = transform.TransformDirection(Vector3.forward);
Vector3 toOther = FrontFace.position - transform.forward;
if (Vector3.Dot(forward, toOther) > 0) //If the camera is facing in the Front Face direction
{
if ((Vector3.Dot(forward, toOther) > 0.5) && (Vector3.Dot(forward, toOther) < 200))
{
print("FACING FRONT");
FrontObj.SetActive(true);
}
else
{
FrontObj.SetActive(false);
print("NOT FACING FRONT");
}
}
}
//RIGHT
if (RightFace)
{
Vector3 forward = transform.TransformDirection(Vector3.forward);
Vector3 toOther = FrontFace.position - transform.forward;
if (Vector3.Dot(forward, toOther) > 0.5)
{
print("FACING RIGHT");
RightObj.SetActive(true);
}
else
{
RightObj.SetActive(false);
print("NOT FACING RIGHT");
}
}
}
}