ฉันต้องการสร้างเครื่องมือที่คล้ายกับเครื่องมือภูมิประเทศของ Unity ซึ่งมีปุ่มสลับบางปุ่มในตัวตรวจสอบ:
ฉันจะออกแบบที่คล้ายกันนี้ได้อย่างไร ฉันรู้วิธีสร้างปุ่มปกติและส่วนประกอบ UI อื่น ๆ ในตัวตรวจสอบ แต่ฉันไม่สามารถหาข้อมูลเพียงพอที่จะทำให้ปุ่มสลับ
จนถึงตอนนี้ฉันได้ใช้การสลับปกติที่สร้างช่องทำเครื่องหมาย:
var tmp = EditorGUILayout.Toggle( SetAmountFieldContent, _setValue );
if ( tmp != _setValue )
{
_setValue = tmp;
if ( _setValue )
_smoothValue = false;
}
tmp = EditorGUILayout.Toggle( SmoothValueFieldContent, _smoothValue );
if ( tmp != _smoothValue )
{
_smoothValue = tmp;
if ( _smoothValue )
_setValue = false;
}
การตั้งค่าสลับGUIStyle
เป็น "ปุ่ม" จะไม่ให้ผลลัพธ์ที่ต้องการ เนื้อหาข้อความหรือรูปภาพจะอยู่ด้านซ้ายของปุ่มแทนที่จะอยู่ข้างใน
var tmp = EditorGUILayout.Toggle( SetAmountFieldContent, _setValue, "Button" );
ไม่มีตัวเลือกใด ๆ ที่พบในGUISkinดูเหมือนจะไม่ช่วย
_smoothValue = !GUILayout.Button( SetAmountFieldContent, _smoothValue ? ToggleButtonStyleToggled : ToggleButtonStyleNormal)
มีบูลีนสองตัว? ที่ทำงานได้ดีสำหรับฉันและรหัสดูใกล้เคียงกับการใช้ปุ่มสามัคคีสลับ / สลับ