如何增加/减少Unity中对象的大小?
例:
public GameObject精灵;
公共浮动比例= 2.0f;
void ScaleResolution()
{
sprite = sprite*scale; //史诗串!
}
遵循这个问题 - 在大多数派生类的析构函数中进行纯虚拟调用 - 我尝试了一些代码来检查一些语法,并发现当调用过多的析构函数时,它们会调用它们相关的虚函数.考虑以下代码:
class Base
{
public:
virtual void Method() = 0;
};
class Derived : public Base
{
public:
~Derived()
{
Method();
}
virtual void Method()
{
cout << "D";
}
};
class DoubleD : public Derived
{
public:
~DoubleD()
{
Method();
}
virtual void Method()
{
cout << "DD";
}
};
int main(array<System::String ^> ^args)
{
DoubleD D;
DoubleD E;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,当对象被破坏时,它会调用正确的方法(例如,首先是派生的最多,然后是派生的第二个).
输出:DD D.
我的问题是,为什么这有效?由于您不打算在c'tor/d'tor中调用虚函数,为什么虚拟表会正确"展开".
例如,我可以看到为什么导出最多的一个工作,这是虚拟函数指针表在启动时所处的状态.但是,为什么,当Derived调用析构函数时,表是否正确设置为指向该类的实现Method.
为什么不离开它,或者如果它很好,将值设置为NULL.