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); } }
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; } }
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()); }