我正在尋找將代碼行傳遞給我在c#中調用的函數,目的是優化我的代碼並嘗試學習新的東西。我熟悉使用字符串,整數,浮點數和布爾值,正如我在代碼中所顯示的那樣。將代碼行作爲參數傳遞到函數中
這個想法是調用一個按鈕單擊的函數來停止腳本並再次啓動腳本。如果沒有這個功能代碼的工作:
public void PlayOnClick()
{
if(count != 1)
{
m_animator.GetComponent<Animator>().Play("Scale");
d_animator.GetComponent<Animator>().Play("CloseUp");
((MovieTexture)MovieOne.GetComponent<Renderer>().material.mainTexture).Play();
Dialyser.GetComponent<RotationByMouseDrag>().enabled = false;
count = 1;
}
else
{
m_animator.GetComponent<Animator>().Play("Scale");
d_animator.GetComponent<Animator>().Play("ScaleDown");
((MovieTexture)MovieOne.GetComponent<Renderer>().material.mainTexture).Stop();
Dialyser.GetComponent<RotationByMouseDrag>().enabled = true;
count = 0;
}
}
但是我相信這可以縮短。再次按下時
((MovieTexture)MovieOne.GetComponent<Renderer>().material.mainTexture).Stop();
並將其改成這樣::我得到這個至今:按一次當
void Lock(string A, string B, ? C, bool D, int E)
{
m_animator.GetComponent<Animator>().Play(A);
d_animator.GetComponent<Animator>().Play(B);
C;
Dialyser.GetComponent<RotationByMouseDrag>().enabled = D;
count = E;
}
在功能CI想要通過以下行
((MovieTexture)MovieOne.GetComponent<Renderer>().material.mainTexture).Play();
我遇到過eval--但我相信這只是對於JavaScript而言可能是相當處理器密集型的。我已經考慮將該行解析爲一個字符串。
我目前正在搜索和嘗試的王牌。任何人都可以爲我闡明一些事情嗎?
謝謝 - 這就是我以後的樣子。非常感激。 –