Lib.Vector.Change(int xyzIndex,float setValue, object obj)とかいう関数用意して
var tmp=Lib.Vector3.Change(0,3f,obj);//一番最初の引数は0でXを指す、1ならY,2ならZとか

そういやUnityだとこんな面倒なことやらなきゃいけなくて挫折した気がする。