static void SetNames() { GameObject[] selObj = Selection.gameObjects; foreach (var obj in Selection.gameObjects) { SkinnedMeshRenderer smr = obj.GetComponent <SkinnedMeshRenderer>(); FBSTargetInfo queueComp = obj.GetComponent <FBSTargetInfo>(); System.Type ourType = queueComp.GetType(); FieldInfo fi = ourType.GetField("OpenName", BindingFlags.Public | BindingFlags.Instance); //Debug.Log(fi); fi.SetValue(queueComp, new string[] { "test" }); } }
public void ChangeFace(Dictionary <int, float> dictFace, bool blend) { bool flag = false; byte b = 0; float num = 0f; FBSTargetInfo[] fBSTarget = FBSTarget; int num2 = 0; while (num2 < fBSTarget.Length) { FBSTargetInfo fBSTargetInfo = fBSTarget[num2]; SkinnedMeshRenderer skinnedMeshRenderer = fBSTargetInfo.GetSkinnedMeshRenderer(); foreach (int key in dictFace.Keys) { if (skinnedMeshRenderer.sharedMesh.blendShapeCount <= fBSTargetInfo.PtnSet[key].Close) { b = 1; break; } if (skinnedMeshRenderer.sharedMesh.blendShapeCount <= fBSTargetInfo.PtnSet[key].Open) { b = 1; break; } num += dictFace[key]; } if (b != 0) { break; } if (flag || !(num > 1f)) { flag = true; num2++; continue; } b = 2; break; } switch (b) { case 1: Debug.LogError("ブレンドシェイプ番号が範囲外"); break; case 2: Debug.LogError("合成の割合が100%を超えています"); break; default: dictBackFace.Clear(); foreach (int key2 in dictNowFace.Keys) { dictBackFace[key2] = dictNowFace[key2]; } dictNowFace.Clear(); foreach (int key3 in dictFace.Keys) { dictNowFace[key3] = dictFace[key3]; } if (!blend) { blendTimeCtrl.End(); } else { blendTimeCtrl.Start(); } break; } }