public static Int32 CollisionAngle(PosObj po, Obj coll) { PosObj posObj = (PosObj)coll; Vector3 b = new Vector3(po.pos[0], po.pos[1], po.pos[2]); Vector3 a = new Vector3(posObj.pos[0], posObj.pos[1], posObj.pos[2]); Vector3 posObjRot = EventCollision.GetPosObjRot(po); Vector3 posObjRot2 = EventCollision.GetPosObjRot(posObj); Vector3 normalized = (a - b).normalized; if (normalized == Vector3.zero) { return(0); } Vector3 eulerAngles = Quaternion.LookRotation(normalized).eulerAngles; Vector3 vector = eulerAngles - posObjRot; vector.x = ((vector.x <= 180f) ? vector.x : (vector.x - 360f)); vector.x = ((vector.x >= -180f) ? vector.x : (vector.x + 360f)); vector.y = ((vector.y <= 180f) ? vector.y : (vector.y - 360f)); vector.y = ((vector.y >= -180f) ? vector.y : (vector.y + 360f)); vector.z = ((vector.z <= 180f) ? vector.z : (vector.z - 360f)); vector.z = ((vector.z >= -180f) ? vector.z : (vector.z + 360f)); Single floatAngle = vector.magnitude - 180f; return(EventEngineUtils.ConvertFloatAngleToFixedPoint(floatAngle)); }