Example #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        NYImageTracker _target = target as NYImageTracker;

        if (_target.trackerImage != _target._lastTexture)
        {
            OnTextureChange();
            UpdateMeshShape(_target.physicalSize, _target.editScaler);
        }
        else if (_target.physicalSize != _target._lastTrackerSize)
        {
            if (_target.physicalSize.x != _target._lastTrackerSize.x)
            {
                _target.physicalSize.y = _target.physicalSize.x * _target._sizeRatio;
            }
            else if (_target.physicalSize.y != _target._lastTrackerSize.y)
            {
                _target.physicalSize.x = _target.physicalSize.y / _target._sizeRatio;
            }

            _target._lastTrackerSize = _target.physicalSize;
            UpdateMeshShape(_target.physicalSize, _target.editScaler);
        }
        else if (_target.editScaler != _target._lastEditScaler)
        {
            _target._lastEditScaler = _target.editScaler;
            UpdateMeshShape(_target.physicalSize, _target.editScaler);
        }
    }
Example #2
0
    void OnTextureChange()
    {
        NYImageTracker targetScript = (NYImageTracker)target;
        GameObject     targetObj    = targetScript.gameObject;

        if (targetScript.trackerImage != targetScript._lastTexture)
        {
            targetScript._lastTexture = targetScript.trackerImage;

            targetObj.GetComponent <MeshRenderer>().sharedMaterial.mainTexture = targetScript._lastTexture;

            // change size ratio
            Vector2 textureSize = GetTextureSize(targetScript._lastTexture);

            Debug.Log("TEXTURE SIZE: " + textureSize);

            targetScript._sizeRatio = (float)textureSize.y / (float)textureSize.x;

            // landscape
            if (textureSize.x > textureSize.y)
            {
                targetScript.physicalSize = new Vector2(1.0f, targetScript._sizeRatio);
            }
            else // portrait
            {
                targetScript.physicalSize = new Vector2(1.0f / targetScript._sizeRatio, 1.0f);
            }

            targetObj.transform.localScale = Vector3.one;

            // update mesh
            targetScript._lastTrackerSize = targetScript.physicalSize;
        }
    }
Example #3
0
    public override VisualElement CreateInspectorGUI()
    {
        NYImageTracker targetScript = (NYImageTracker)target;
        GameObject     targetObj    = targetScript.gameObject;

        // check component
        if (!targetObj.GetComponent <MeshRenderer>())
        {
            targetObj.AddComponent <MeshRenderer>();

            targetObj.GetComponent <MeshRenderer>().material = new Material(Resources.Load <ARFoundationHelperSettings>("HelperSettings").DefaultImageTrackerMaterial);
        }

        if (!targetObj.GetComponent <MeshFilter>())
        {
            targetObj.AddComponent <MeshFilter>();

            targetObj.GetComponent <MeshFilter>().mesh = CreateTrackerMesh();
        }

        return(base.CreateInspectorGUI());
    }