Token 0x02000BDA RID 3034public class AutomatableSideScreen SideScreenContent Token 0x06005F8C RID 24460 RVA 0x00230116 File Offset 0x0022E316 protected override void OnPrefabInit baseOnPrefabInit
//自动化侧边栏内容 public class AutomatableSideScreen : SideScreenContent { //在预制件初始化时调用 protected override void OnPrefabInit() { base.OnPrefabInit(); }
//在生成时调用
protected override void OnSpawn()
{
base.OnSpawn();
//设置允许手动切换的提示信息
this.allowManualToggle.transform.parent.GetComponent<ToolTip>().SetSimpleTooltip(UI.UISIDESCREENS.AUTOMATABLE_SIDE_SCREEN.ALLOWMANUALBUTTONTOOLTIP);
//添加允许手动切换的事件监听
this.allowManualToggle.onValueChanged += this.OnAllowManualChanged;
}
//检查目标对象是否具有Automatable组件
public override bool IsValidForTarget(GameObject target)
{
return target.GetComponent<Automatable>() != null;
}
//设置目标对象
public override void SetTarget(GameObject target)
{
base.SetTarget(target);
if (target == null)
{
global::Debug.LogError("The target object provided was null");
return;
}
this.targetAutomatable = target.GetComponent<Automatable>();
if (this.targetAutomatable == null)
{
global::Debug.LogError("The target provided does not have an Automatable component");
return;
}
//设置允许手动切换的初始状态
this.allowManualToggle.isOn = !this.targetAutomatable.GetAutomationOnly();
this.allowManualToggleCheckMark.enabled = this.allowManualToggle.isOn;
}
//允许手动切换的事件处理方法
private void OnAllowManualChanged(bool value)
{
this.targetAutomatable.SetAutomationOnly(!value);
this.allowManualToggleCheckMark.enabled = value;
}
原文地址: https://www.cveoy.top/t/topic/hpA4 著作权归作者所有。请勿转载和采集!