void Start()
        {
            // only continue when yaw pitch roll is valid
            if (!isValid)
            {
                return;
            }

            // construct offset rotation on parent
            Quaternion offsetQuat = Quaternion.Euler(_parentOffsetX, _parentOffsetY, _parentOffsetZ);

            parentOffsetMatrix = Matrix4x4.Rotate(offsetQuat);

            // construct mapping list to get index
            List <string> mappingList = new List <string>();

            mappingList.Add("X");
            mappingList.Add("Y");
            mappingList.Add("Z");

            // get yaw pitch roll indices
            string mappingString = mapping.ToString();

            yawIndex   = mappingList.IndexOf(mappingString[0].ToString());
            pitchIndex = mappingList.IndexOf(mappingString[1].ToString());
            rollIndex  = mappingList.IndexOf(mappingString[2].ToString());
        }
    void Start()
    {
        // construct mapping list to get index
        List <string> mappingList = new List <string>();

        mappingList.Add("X");
        mappingList.Add("Y");
        mappingList.Add("Z");

        // get yaw pitch roll indices
        string mappingString = mapping.ToString();

        yawIndex   = mappingList.IndexOf(mappingString[0].ToString());
        pitchIndex = mappingList.IndexOf(mappingString[1].ToString());
        rollIndex  = mappingList.IndexOf(mappingString[2].ToString());
    }