c# - 将 UnityScript 翻译成 C# : yield & transform. 位置

标签 c# unity3d unityscript

我实际上正在努力将一个最初使用 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/

相关文章:

c# - DateTime.Now.ToUniversalTime() 年份错误

unity3d - 统一编辑器 : ExecuteInEditMode vs Editor scripts

ios - xCode 不会从 Unity 解析项目

c# - Unity - 如何让两个相同的游戏对象发生碰撞、相互破坏并在目标位置生成一个新的游戏对象?

c# - 设置打印区域 - OpenXML with Excel

c# - 在 .Net 中恢复本地名称

android - 在 Unity Android 中从 ShortBuffer 读取时出现 IllegalStateException

android - UnityPlayerActivity getContext() 替换

javascript - Unity 5.3.2 - 无法在检查器中使用 UI 文本对象

C# 变量和常量在溢出期间的行为不同。