经常做四元数变化就要想半天,太生疏,把常用的总结下来。
1.头方向不正,把头摆水平
Quaternion qForward = Quaternion.LookRotation(Vector3.up, -transform.forward) * Quaternion.AngleAxis(90f, Vector3.right);
transform.rotation = qForward;
2,一个点是某个对象的局部坐标,计算旋转后的位置,相对于我在哪里
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static CTool;
public class rotscene : MonoBehaviour
{
public Vector3 at;
public float rot;
public bool click;
public Transform t;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (click)
{
click = false;
t.SetParent(transform);
Quaternion q = Quaternion.Euler(0f, rot, 0f);
Quaternion q2 = transform.rotation * q ;
Vector3 newat = transform.position + q2 * at;
t.position = newat;
}
}
}