Unity3D ----- 运行动画时修改局部骨骼的rotation

这几天一直被一个问题困扰着。因为要做一个射击的小demo,涉及到地面上的人射击空中的飞机。

但是动画中的人物的头部要看向飞机才会更真实,可是我人物里的头用Transform根本找不到啊!!!

苦恼了好久,今天想着去Animator里找找有木有可用的函数,妈蛋 一找就有收获!!!

 

原先是酱紫。头部是正常的角度。

加上以下代码便会有改变~~Surprise~~~!!!

    private void OnAnimatorIK(int layerIndex)
    {
        float angle_Z = Vector3.Angle(player.position - transform.position, transform.forward);
        Debug.Log(angle_Z);
        animator.SetBoneLocalRotation(HumanBodyBones.Head, Quaternion.Euler(0, 0, angle_Z));
    }

现在运行!!!

 

posted @ 2016-01-22 18:05  王赛  阅读(3744)  评论(0编辑  收藏  举报