I don’t know why your game can’t use Transform functions, but it can be done with the following code:
function RotateAround(center: Vector3, axis: Vector3, angle: float){
var pos: Vector3 = transform.position;
var rot: Quaternion = Quaternion.AngleAxis(angle, axis); // get the desired rotation
var dir: Vector3 = pos - center; // find current direction relative to center
dir = rot * dir; // rotate the direction
transform.position = center + dir; // define new position
// rotate object to keep looking at the center:
var myRot: Quaternion = transform.rotation;
transform.rotation *= Quaternion.Inverse(myRot) * rot * myRot;
}
Hope you can at least use Quaternion functions!
NOTE: This function is based on the original Unity code for RotateAround (thanks to ILSpy for that!).