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();

}

}

}

相关推荐
Magnum Lehar13 分钟前
wpf游戏引擎的Components的entity组件实现
游戏引擎·wpf
徐子竣44 分钟前
Unity性能优化-C#编码模块
unity·性能优化·游戏引擎
Thomas_YXQ2 小时前
Unity3D SM节点式动画技能编辑器实现
开发语言·游戏·unity·编辑器·游戏引擎
Magnum Lehar7 小时前
wpf游戏引擎content/Asset.cs
游戏引擎·wpf
虾球xz7 小时前
游戏引擎学习第315天:取消排序键的反向顺序
开发语言·c++·学习·游戏引擎
惊鸿醉8 小时前
⭐ Unity 实现屏幕涟漪效果:自动生成 \ 点击交互生成涟漪
unity·游戏引擎
Magnum Lehar8 小时前
wpf游戏引擎下的Geometry实现
java·游戏引擎·wpf
Java Fans8 小时前
WPF调用Python心率监测脚本解决方案
开发语言·python·wpf
aerror1 天前
如何正确的用Trae 打开 Unity 3D 项目
3d·unity·游戏引擎
步、步、为营1 天前
.NET 的IOC框架Unity代码示例
unity·游戏引擎·.net