public void OnSceneGUI()
    {
        PHIKBallActuatorBehaviour phIKActBehaviour = (PHIKBallActuatorBehaviour)target;

        // ----- ----- ----- ----- -----
        // Pullback Target Handle
        // <!!>(本当は親剛体の姿勢を基準にしたほうがいいのでは?)
        if (phIKActBehaviour.showPullbackTargetHandle)
        {
            Tools.current = Tool.None;

            if (phIKActBehaviour.phIKBallActuator != null)
            {
                phIKActBehaviour.phIKBallActuator.GetDesc(desc);
                Quaternion currPullbackTarget = desc.pullbackTarget.ToQuaternion();
                Quaternion handleRot          = Handles.RotationHandle(currPullbackTarget, phIKActBehaviour.transform.position);
                desc.pullbackTarget = handleRot.ToQuaterniond();
                phIKActBehaviour.phIKBallActuator.SetDesc(desc);
                phIKActBehaviour.desc.pullbackTarget = desc.pullbackTarget;
            }
            else if (phIKActBehaviour.desc != null)
            {
                Quaternion currPullbackTarget = ((Quaterniond)(phIKActBehaviour.desc.pullbackTarget)).ToQuaternion();
                Quaternion handleRot          = Handles.RotationHandle(currPullbackTarget, phIKActBehaviour.transform.position);
                phIKActBehaviour.desc.pullbackTarget = handleRot.ToQuaterniond();
            }
        }
    }
예제 #2
0
    // ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    // SprBehaviourの派生クラスで実装するメソッド

    // -- 全てのBuildが完了した後に行う処理を書く。オブジェクト同士をリンクするなど
    public override void Link()
    {
        PHIKBallActuatorBehaviour ba = gameObject.GetComponentInChildren <PHIKBallActuatorBehaviour>();

        if (ba != null && ba.sprObject != null && sprObject != null)
        {
            ba.sprObject.AddChildObject(sprObject);
        }
        PHIKHingeActuatorBehaviour ha = gameObject.GetComponentInChildren <PHIKHingeActuatorBehaviour>();

        if (ha != null && ha.sprObject != null && sprObject != null)
        {
            ha.sprObject.AddChildObject(sprObject);
        }
        UpdateIKTargetPosition();
    }
예제 #3
0
    // ----- ----- ----- ----- ----- ----- ----- ----- ----- -----

    void Start()
    {
        ikActuator = GetComponent <PHIKBallActuatorBehaviour>();
    }