我实际上正在努力将一个最初使用 UnityScript 的统一项目转换为 C#。我已经翻译了项目的大部分内容,但我遇到了一些问题:
第一个问题与yield有关:
yield Attack();
yield;
我已经替换了所有的:yield WaitForSeconds()
但我不知道如何替换它。
其次是 transform.position 的另一个问题:
transform.eulerAngles.y += Input.GetAxis("Horizontal") * speedIdleRotate;
transform.position.y = currentHeight;
抛出错误:
UnityEngine.Transform.eulerAngles is not a variable
UnityEngine.Transform.position is not a variable
似乎没有考虑 .y,但在 js 中我工作正常。如何在 C# 中处理它?</p>
最佳答案
在 JS 中,
yield; // this means that wait for one frame
在 C# 中,
yield return null;
我不是 100% 确定,但对于 yield Attack();
应该是
yield return Attack();
对于,
transform.eulerAngles.y += Input.GetAxis("Horizontal") * speedIdleRotate;
试试这个:
transform.eulerAngles = new Vector3( transform.eulerAngles.x , transform.eulerAngles.y + Input.GetAxis("Horizontal") * speedIdleRotate , transform.eulerAngles.z);
对于,
transform.position.y = currentHeight;
试试这个:
transform.position =new Vector3(transform.position.x,currentHeight,transform.position.z);
对不起,如果我有什么不对的地方。
关于c# - 将 UnityScript 翻译成 C# : yield & transform. 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32649307/