版本: Unity 6 (6000.0)
语言英语
  • C#

ExpressionEvaluator.Evaluate

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static bool Evaluate(string expression, out T value);

参数

expression 包含数学表达式的字符串(例如“4+3”)。
value 表达式的计算结果。支持的类型包括:intfloatlongdouble

返回值

bool 指示表达式是否能够成功计算。

描述

计算数学表达式并返回结果。

可以计算的表达式支持

  • 算术运算符 a+ba-ba*ba/b
  • 幂运算符 (a^b) 和取模运算符 (a%b),
  • 括号,
  • 数学函数 sqrt(a)floor(a)ceil(a)round(a)
  • 三角函数 cos(a)sin(a)tan(a)(参数以弧度表示),以及常量 pi

如果无法计算表达式,则函数返回 false,并将结果值设置为零。

using UnityEditor;
using UnityEngine;

public class ExampleScript : MonoBehaviour { [MenuItem("Example/Int Expression")] public static void IntExample() { ExpressionEvaluator.Evaluate("2+3", out int result); // prints 5 Debug.Log(result); }

[MenuItem("Example/Float Expression")] public static void FloatExample() { ExpressionEvaluator.Evaluate("sqrt(cos(pi/3))", out float result); // prints 0.7071068 Debug.Log(result); } }