void Awake()
    {
        IK_Head_Linkage_CS ik_Head = this.GetComponentInChildren <IK_Head_Linkage_CS>();
        IK_CS ik_arm = this.GetComponentInChildren <IK_CS>();

        if (ik_Head == null)
        {
            IkSolverRef = IKSoverReference.None;
        }
        else
        {
            if (IkSolverRef == IKSoverReference.AsSource)
            {
                HeadTarget     = ik_Head.eyeTransform;
                LeftArmTarget  = ik_arm.leftHandTarget;
                RightArmTarget = ik_arm.rightHandTarget;
            }
            else if (IkSolverRef == IKSoverReference.AsDestination)
            {
                ik_Head.eyeTransform   = HeadTarget;
                ik_arm.leftHandTarget  = LeftArmTarget;
                ik_arm.rightHandTarget = RightArmTarget;
            }
        }
    }
 void Initialize(IPlayerAvatarPresenter player_presenter)
 {
     player_presenter.OnLoadModelCompleted
     .Subscribe(go =>
     {
         m_Animator = go.GetComponent <Animator>();
         m_IK_Head  = go.GetComponent <IK_Head_Linkage_CS>();
         m_IK_Arm   = go.GetComponent <IK_CS>();
         if (m_IK_Arm != null)
         {
             m_PositionWeightR = m_IK_Arm.rightHandPosWeight;
             m_RotationWeightR = m_IK_Arm.rightHandRotWeight;
             m_PositionWeightL = m_IK_Arm.leftHandPosWeight;
             m_RotationWeightL = m_IK_Arm.leftHandRotWeight;
         }
     }).AddTo(this);
 }