//上方向でくるくる旋回させる
count++;
Vector3 normalVector = new Vector3(Mathf.Sin(count / 10.0f), 1, Mathf.Cos(count/10.0f));
normalVector.Normalize();
//normalVectorの方向に回転させるための軸と量
//キャラクターの頭上方向
Vector cross = Vector3.Cross(transform.rotation * Vector3.up, normalVector).normalized;
float dot = Vector3.Dot(transform.rotation * Vector3.up, normalVector);
//内積から角度に治す(1.0f~-1.0f)→0~180
dot = (dot - 1.0f)*-90;
//適用
//これでnormalVectorの方向に向いているはず
transform.Rotate(cross, dot);
//結果を見る
//normalVectorを示すSphereゲームオブジェクト
aaa.transform.position = transform.position + normalVector * 5;
//実際に向いている方向を示すSphereゲームオブジェクト
aaa2.transform.position = transform.position + transform.rotation * Vector3.up * 5;
Ly/kuIrmlrnlkJHjgafjgY/jgovjgY/jgovml4vlm57jgZXjgZvjgosKY291bnQrKzsKVmVjdG9yMyBub3JtYWxWZWN0b3IgPSBuZXcgVmVjdG9yMyhNYXRoZi5TaW4oY291bnQgLyAxMC4wZiksIDEsIE1hdGhmLkNvcyhjb3VudC8xMC4wZikpOwpub3JtYWxWZWN0b3IuTm9ybWFsaXplKCk7CiAKLy9ub3JtYWxWZWN0b3Ljga7mlrnlkJHjgavlm57ou6LjgZXjgZvjgovjgZ/jgoHjga7ou7jjgajph48KLy/jgq3jg6Pjg6njgq/jgr/jg7zjga7poK3kuIrmlrnlkJEKVmVjdG9yIGNyb3NzID0gVmVjdG9yMy5Dcm9zcyh0cmFuc2Zvcm0ucm90YXRpb24gKiBWZWN0b3IzLnVwLCBub3JtYWxWZWN0b3IpLm5vcm1hbGl6ZWQ7CmZsb2F0IGRvdCA9IFZlY3RvcjMuRG90KHRyYW5zZm9ybS5yb3RhdGlvbiAqIFZlY3RvcjMudXAsIG5vcm1hbFZlY3Rvcik7CiAKLy/lhoXnqY3jgYvjgonop5LluqbjgavmsrvjgZkoMS4wZn4tMS4wZinihpIwfjE4MApkb3QgPSAoZG90IC0gMS4wZikqLTkwOwogCi8v6YGp55SoCi8v44GT44KM44Gnbm9ybWFsVmVjdG9y44Gu5pa55ZCR44Gr5ZCR44GE44Gm44GE44KL44Gv44GaCnRyYW5zZm9ybS5Sb3RhdGUoY3Jvc3MsIGRvdCk7CiAKLy/ntZDmnpzjgpLopovjgosKLy9ub3JtYWxWZWN0b3LjgpLnpLrjgZlTcGhlcmXjgrLjg7zjg6Djgqrjg5bjgrjjgqfjgq/jg4gKYWFhLnRyYW5zZm9ybS5wb3NpdGlvbiA9IHRyYW5zZm9ybS5wb3NpdGlvbiArIG5vcm1hbFZlY3RvciAqIDU7Ci8v5a6f6Zqb44Gr5ZCR44GE44Gm44GE44KL5pa55ZCR44KS56S644GZU3BoZXJl44Ky44O844Og44Kq44OW44K444Kn44Kv44OICmFhYTIudHJhbnNmb3JtLnBvc2l0aW9uID0gdHJhbnNmb3JtLnBvc2l0aW9uICsgdHJhbnNmb3JtLnJvdGF0aW9uICogVmVjdG9yMy51cCAqIDU7Cg==