是否可以使用LuaJavascript脚本扩展新的变量来扩展C#对象?

是否可以使用LuaJavascript脚本扩展新的变量来扩展C#对象?,第1张

概述可以说我有C#类: class Player { string Name; int HitPoints} 我想为我的游戏添加modding / scripting支持,用户可以使用自己的变量扩展它. (让我们说“bool StartedKill5RatsQuest”),然后对他来说同样可以访问他的默认参数. 用户脚本: player.HP = 10;player.StartedKill 可以说我有C#类:

class Player {  string name;  int HitPoints}

我想为我的游戏添加modding / scripting支持,用户可以使用自己的变量扩展它. (让我们说“bool StartedKill5RatsQuest”),然后对他来说同样可以访问他的默认参数.

用户脚本:

player.HP = 10;player.StartedKill5RatsQuest = true;

是否可以使用任何众所周知的脚本语言来完成它?

解决方法 你不能直接这样做.但是,通过引入一组内部“变量”,可以获得类似的功能:

Dictionary<string,object> _scriptvariables = new Dictionary<string,object>();

有了这个,你可以为你的玩家提供一套创建/获取/设置他们的“变量”的方法,比如:

public voID CreateVariable<T> ( string name,T defaultValue );public voID Set<T> (string name,T value );public T Get<T> ( string name );etc...

这些方法将访问您的字典并 *** 纵其值,因此您的用户可能会写:

public voID Initialize(){    player.CreateVariable<int>("HP");    player.CreateVariable<bool>("StartedKill5RatsQuest");    player.Set("HP",10);    player.Set("StartedKill5RatsQuest",true);}public voID Update(){     ...     if(player.Get<bool>("StartedKill5RatsQuest"))     {         ...     }}

这比直接成员 *** 作更冗长一点,在类中实现支持方法时,你应该对类型很聪明,但是它可以完成这项工作.

总结

以上是内存溢出为你收集整理的是否可以使用Lua / Javascript脚本扩展新的变量来扩展C#对象?全部内容,希望文章能够帮你解决是否可以使用Lua / Javascript脚本扩展新的变量来扩展C#对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1224646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存