 
 (def  ->go arcadia.core/gobj)
 (defn ->transform [v] (arcadia.core/cmpt v UnityEngine.Transform))
+
+(defmacro >v3 [o]
+  `(.position (.transform ~o)))
 
 (defn X [o] (.x (>v3 o)))
 (defn Y [o] (.y (>v3 o)))


(defn ^UnityEngine.Vector3 
  local-position! [^UnityEngine.GameObject o pos]
  (set! (.localPosition (.transform o)) (>v3 pos)) o)

(defn ^UnityEngine.Vector3 
  local-direction [^GameObject o ^UnityEngine.Vector3  v]

    (set! (.localRotation (.transform o)) rot)) o)

(defn look-at! 
  ([a b] (.LookAt (->transform a) b))
  ([a b c] (.LookAt (->transform a) b c)))

(defn look-quat [a b]
  (Quaternion/LookRotation (arcadia.linear/v3- b (>v3 a))))

(defn lerp-look! [^UnityEngine.GameObject a b ^double v]
  (let [^UnityEngine.Transform at (.transform a)
