Hi,
I did what UIElments Sample did but the callback can’t be registered. Here is my code:
private void OnEnable()
{
root = rootVisualElement;
root.Clear();
var visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/ruiming_wip/Chart.uxml");
chart = visualTree.CloneTree();
chartHolder = chart.Q(name: "ChartHolder");
chartHolder.generateVisualContent += LineGenVisualContent;
lineTextureField= chart.Q<ObjectField>("LineTexture");
lineTextureField.objectType = typeof(Texture2D);
lineTexture = (Texture2D)lineTextureField.value;
lineTextureField.SetEnabled(true);
lineTextureField.RegisterCallback<ChangeEvent<Object>>((evt) => {
Debug.Log(lineTexture);
lineTexture = (Texture2D)evt.newValue;
chartHolder.MarkDirtyRepaint();
});
lineColorField = chart.Q<ColorField>("LineColor");
lineColor = lineColorField.value;
lineColorField.RegisterCallback<ChangeEvent<Color>>((evt) => { lineColor = evt.newValue; lineTexture = (Texture2D)lineTextureField.value;chartHolder.MarkDirtyRepaint();});
root.Add(chart);
}
The line for ColorField do works for me, so is this a bug I’m looking at?
I also tried, but no luck :
lineTextureField.RegisterCallback<ChangeEvent<Texture2D>>((evt) => {
Debug.Log(lineTexture);
lineTexture = evt.newValue;
chartHolder.MarkDirtyRepaint();
});