Cogito, ergo sum
Legacy:UnrealScript Language Reference/Language Functionality
Language Functionality
Built-In Operators And Their Precedence
UnrealScript provides a wide variety of C/C++/Java-style operators for such operations as adding numbers together, comaring values, and incrementing variables. The complete set of operators is defined in Object.u, but here is a recap. Here are the standard operators, in order of precedence. Note that all of the C style operators have the same precedence as they do in C.
Operator | Types it applies to | Meaning |
$ |
string | String concatenation |
*= |
byte, int, float, vector, rotation | Multiply and assign |
/= |
byte, int, float, vector, rotation | Divide and assign |
+= |
byte, int, float, vector | Add and assign |
-=- |
byte, int, float, vector | Subtract and assign |
{| |
||
|bool |Logical or |- | style="text-align: center" |&&
|bool |Logical and |- | style="text-align: center" |&
|int |Bitwise and |- | style="text-align: center" |{|
|}
|int |Bitwise or |- | style="text-align: center" |^
|int |Bitwise exlusive or |- | style="text-align: center" |!=
|all |Compare for inequality |- | style="text-align: center" |----
|all |Compare for equality |- | style="text-align: center" |<
|byte, int, float, string |Less than |- | style="text-align: center" |>
|byte, int, float, string |Greater than |- | style="text-align: center" |<=
|byte, int, float, string |Less than or equal to |- | style="text-align: center" |>=
|byte, int, float, string |Greater than or equal to |- | style="text-align: center" |~=
|float, string |Approximate equality (within 0.0001), case-insensitive equality |- | style="text-align: center" |<<
|int, vector |Left shift (int), Forward vector transformation (vector) |- | style="text-align: center" |>>
|int, vector |Right shift (int), Reverse vector transformation (vector) |- | style="text-align: center" |+
|byte, int, float, vector |Add |- | style="text-align: center" |-
|byte, int, float, vector |Subtract |- | style="text-align: center" |%
|float |Modulo (remainder after division) |- | style="text-align: center" |*
|byte, int, float, vector, rotation |Multiply |- | style="text-align: center" |/
|byte, int, float, vector, rotation |Divide |- | style="text-align: center" |dot
|vector |Vector dot product |- | style="text-align: center" |cross
|vector |Vector cross product |- | style="text-align: center" |**
|float |Exponentiation |}
The above table lists the operators in order of precedence (with operators of the same precedence grouped together). When you type in a complex expression like "1*2+3*4", UnrealScript automatically groups the operators by precedence. Since multiplication has a higher precedence than addition, the expression is evaluated as "(1*2)+(3*4)".
The "&&" (logical and) and "||" (logical or) operators are short-circuited: if the result of the expression can be determined solely from the first expression (for example, if the first argument of && is false), the second expression is not evaluated.
In addition, UnrealScript supports the following unary operators:
Operator | Types it applies to | Meaning |
! |
bool | Logical not |
- |
int, float | negation |
~ |
int | bitwise negation |
++, -- |
int, float | Increment or Decrement (either before or after a variable) |
more on this topic in the Wiki: Operators |
General-Purpose Functions
Integer functions:
- int Rand( int Max )
- Returns a random number from 0 to Max-1.
- int Min( int A, int B )
- Returns the minimum of the two numbers.
- int Max( int A, int B )
- Returns the maximum of the two numbers.
- int Clamp( int V, int A, int B )
- Returns the first number clamped to the interval from A to B.
Floating point functions:
- float Abs( float A )
- Returns the absolute value of the number.
- float Sin( float A )
- Returns the sine of the number expressed in radius.
- float Cos( float A )
- Returns the cosine of the number expressed in radians.
- float Tan( float A )
- Returns the tangent of the number expressed in radians.
- float Atan( float A )
- Returns the inverse tangent of the number expressed in radians.
- float Exp( float A )
- Returns the constant "e" raised to the power of A.
- float Loge( float A )
- Returns the log (to the base "e") of A.
- float Sqrt( float A )
- Returns the square root of A.
- float Square( float A )
- Returns the square of A = A*A.
- float FRand()
- Returns a random number from 0.0 to 1.0.
- float FMin( float A, float B )
- Returns the minimum of two numbers.
- float FMax( float A, float B )
- Returns the maximum of two numbers.
- float FClamp( float V, float A, float B )
- Returns the first number clamped to the interval from A to B.
- float Lerp( float Alpha, float A, float B )
- Returns the linear interpolation between A and B.
- float Smerp( float Alpha, float A, float B )
- Returns an Alpha-smooth nonlinear interpolation between A and B.
Unreal’s string functions have a distinct Basic look and feel:
- int Len( coerce string[255] S )
- Returns the length of a string.
- int InStr( coerce string[255] S, coerce string[255] t)
- Returns the offset into the first string of the second string if it exists, or -1 if not.
- string[255] Mid ( coerce string[255] S, int i, optional int j )
- Returns the middle part of the string S, starting and character i and including j characters (or all of them if j is not specified).
- string[255] Left ( coerce string[255] S, int i )
- Returns the i leftmost characters of s.
- string[255] Right ( coerce string[255] S, int i )
- Returns the i rightmost characters of s.
- string[255] Caps ( coerce string[255] S )
- Returns S converted to uppercase.
Vector functions:
- float Size( vector A )
- Returns the euclidean size of the vector (the square root of the sum of the components squared).
- vector Normal( vector A )
- Returns a vector of size 1.0, facing in the direction of the specified vector.
- Invert ( out vector X, out vector Y, out vector Z )
- Inverts a coordinate system specified by three axis vectors.
- vector VRand ( )
- Returns a uniformly distributed random vector.
- float Dist ( vector A, vector B )
- Returns the euclidean distance between two points.
- vector MirrorVectorByNormal( vector Vect, vector Normal )
- Mirrors a vector about a specified normal vector.
more on this topic in the Wiki: Global Function |
Prev Page: Legacy:UnrealScript Language Reference/States – Section 7 of 9 – Next Page: Legacy:UnrealScript Language Reference/Advanced Language Features