wpf游戏引擎的script实现

1.script.cs

using System.IO;

using System.Runtime.Serialization;

using System.Text;

namespace PrimalEditor.Components

{

DataContract

class Script : Component

{

private string _name;

DataMember

public string Name

{

get => _name;

set

{

if (_name != value)

{

_name = value;

OnPropertyChanged(Name);

}

}

}

public override IMSComponent GetMultiselectionComponent(MSEntity msEntity) => new MSScript(msEntity);

public override void WriteToBinary(BinaryWriter bw)

{

var nameBytes = Encoding.UTF8.GetBytes(Name);

bw.Write(nameBytes.Length);

bw.Write(nameBytes);

}

public Script(GameEntity owner) : base(owner)

{

}

}

sealed class MSScript : MSComponent<Script>

{

private string _name;

DataMember

public string Name

{

get => _name;

set

{

if (_name != value)

{

_name = value;

OnPropertyChanged(Name);

}

}

}

protected override bool UpdateComponents(string propertyName)

{

if (propertyName == nameof(Name))

{

SelectedComponents.ForEach(c => c.Name = _name);

return true;

}

return false;

}

protected override bool UpdateMSComponent()

{

Name = MSEntity.GetMixedValue(SelectedComponents, new Func<Script, string>(x => x.Name));

return true;

}

public MSScript(MSEntity msEntity) : base(msEntity)

{

Refresh();

}

}

}

相关推荐
c#上位机9 小时前
wpf中Grid的MouseDown 事件无法触发的原因
c#·wpf
△曉風殘月〆9 小时前
如何在WPF中实现ComboBox多选
wpf
csdn_aspnet12 小时前
如何使用现有工具进行 .NET 8 迁移 Wpf
wpf·.net 8
L X..14 小时前
Unity 光照贴图异常修复笔记
unity·c#·游戏引擎
小L~~~1 天前
2025吉比特-游戏引擎开发-一面复盘
数据结构·算法·游戏引擎
123梦野1 天前
WPF——动画
wpf
攻城狮CSU1 天前
WPF 疑点汇总2.HorizontalAlignment和 HorizontalContentAlignment
wpf
云卓SKYDROID1 天前
无人机中继器模式技术对比
人工智能·游戏引擎·php·无人机·cocos2d·高科技·云卓科技
c#上位机1 天前
wpf之命令
c#·wpf
没有bug.的程序员1 天前
分布式链路追踪:微服务可观测性的核心支柱
java·分布式·微服务·架构·wpf