【发布时间】:2017-11-24 10:28:31
【问题描述】:
编辑 1:如果有人对此有更好的标题,请随时告诉我或自己编辑。
编辑2:感谢你们的贡献,给出的答案几乎是我需要的一些调整,我很感谢这里的小东西。今天真的学到了很多!
这里有一些小东西,我现在正在研究一段时间。
我想创建一个幻灯片,并希望图像对象本身的逻辑。
程序应该能够设置所需的过渡或只是随机的,所以
我想用一般的东西创建一个过渡超类并进行特殊化
它在子类中。所以我有 Transitions.cs(目前里面没有代码)
并且没有派生类。我希望它妨碍添加单个 .cs 文件
扩展 Transitions.cs 并且不更改任何其他代码来实现新的 Transition。
我目前拥有的代码看起来像这样,但我猜我的
描述比代码更有帮助
public class SlideImages : MonoBehaviour {
Image image;
Image nextImage;
int tracker;
private void Transition(int ID)
{
/*Something to choose a transition based on the ID
*Transitions.cs is the superclass of all different transitions
*f.e. Ken-Burns Effect, or scattered Transition which all extend from it
*/
}
~SlideImages()
{
//TODO: Pop and Push
}
}
我想到了一些类似于静态的东西来解决这个问题
看起来像这样,但我想它不起作用
public class Transitions : MonoBehaviour {
public static int TransitionID;
protected static int SubclassCount;
protected static void SetID()
{
TransitionID = Transitions.SubclassCount;
Transitions.SubclassCount++;
}
}
我确实研究了状态设计模式,但我不想实现它,因为我只需要选择一次状态并且是短暂的。图像对象本身只有几秒钟左右的生命周期。我不想做通常的 if 嵌套,或者只是将所有代码放在 SlideImages.cs 中。有没有什么好的指导或者非常深入的继承之类的东西?
感谢所有输入。
【问题讨论】:
-
随机值上的 switch case 会根据值返回特定的转换类型呢?
-
我不太清楚您要做什么。 听起来你想要一个(可能是抽象的)
Transition类型,然后是从它继承的各种类型。但是在你的代码中发生了什么?那么“根据id选择过渡”是什么意思?如果每个图像都有一个Transition对象(无论实现类型如何),那么它不能只调用该对象所需的逻辑吗? -
@Isuka 必须有更好的方法来做到这一点,因为如果我想插入另一个转换,我必须手动更改代码。把它想象成一个基于网络的建筑软件。客户可以根据自己的需要编写自己的转换代码(或以这种方式编写的任何其他代码),然后将其上传到文件夹中。然后一切都被构建并自动实现而无需更改代码
-
@David 是的,目前我没有从它继承任何东西,因为我不想编写甚至不起作用的代码。图像没有
Transition对象,但更像是与派生类关联的数字。不一定是数字,只是用来标识子类的东西它必须以某种方式从另一个文件中调用逻辑,该文件应该是 Transitions.cs 的一部分,因为我想在行为中设置一些相似性和边界 -
@Firro:所以你需要
Transition对象的静态集合之类的东西,并且每个图像都会根据 ID 从该集合中提取?如果您有List<Transition>,那么您可以简单地执行以下操作:transitions.Single(t => t.ID == id),其中transitions是列表,id是您要在其中查找的 ID。
标签: c# inheritance plugins module subclass