//自动化侧边栏内容 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;
}
Token 0x02000BDA RID 3034public class AutomatableSideScreen SideScreenContent	 Token 0x06005F8C RID 24460 RVA 0x00230116 File Offset 0x0022E316	protected override void OnPrefabInit			baseOnPrefabInit

原文地址: https://www.cveoy.top/t/topic/hpA4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录