我正在尝试为UI.Extensions UI_Knob设置初始值 请参阅UI.Extensions repo UI.Extensions bitbutcket
的链接通过一些搜索,我发现设置初始值的最佳方法是使用模拟的pointerEventData并使用ExecuteEvents将其传递给脚本,因为UI_Knob脚本使用鼠标位置来设置它的值。 / p>
- 以下是UI_Knob的代码 -
///信用Tomasz Schelenz ///来自 - https://bitbucket.org/ddreaper/unity-ui-
<div class="menu zoom">
Click me
<div class="dropdown">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
</div>
}
答案 0 :(得分:0)
我在不使用模拟鼠标数据的情况下回答了我自己的问题。相反,我使用MyStartingAngle()方法添加了一个Start()方法。见下文。我切断了UI_Knob的旋转/设置值方法,基本上只是注入了我自己的角度。如果有人愿意,我仍然想知道如何使用模拟鼠标数据执行此操作。我也很感激我的解决方案的任何输入。感谢您的阅读!!
// ADD THIS INTO UI_Knob script below initialization.
// I added this here to allow for setting an initial rotation/value.
void Start(){
float myFirstAngle = 180f;
MyStartingAngle (myFirstAngle);
}
void MyStartingAngle(float angle){
_initRotation = transform.rotation;
Quaternion addRotation = Quaternion.AngleAxis(angle, this.transform.forward);
addRotation.eulerAngles = new Vector3(0, 0, addRotation.eulerAngles.z);
Quaternion finalRotation = _initRotation * addRotation;
knobValue = 1 - (finalRotation.eulerAngles.z / 360f);
transform.rotation = finalRotation;
InvokeEvents(knobValue + _currentLoops);
_previousValue = knobValue;
}