/*/ Slider for exchange character. * public void LODControlSlider (Text label) { * int aIdx = (int)ModelChangeSlider.value; * * // change label. * // string labelName = SetLabelName (aIdx); * // label.text = "Model Change\n" + labelName; * // StartCoroutine( ChangeLOD("Lady Santa " + labelName, aIdx) ); * }*/ // change character model. private IEnumerator ChangeLOD(string modelName, int selectedIdx) { int aIdx = activeLodIdx; activeLodIdx = selectedIdx; // play Idle 0.1 second before change character model. // It is prevent error of transform like weapon_point_hand // 0.1秒、IDLEを再生してからモデルを切り替える。. // 현재 표시 중인 모델에게 IDLE모션을 0.1초간 재생시킨 후 처리를 시작한다. chrCtrl.PlayClip(stateName[0], weaponPos[0]); yield return(new WaitForSeconds(0.1f)); // chrCtrl.ChangeTexture(true); // disable all other character model. // 表示されるIdxではないキャラクターモデルは非表示にする。. // 표시되어야하는 Idx이외의 캐릭터 모델은 꺼준다. for (int i = 0; i < chrModel.Length; i++) { if (i != activeLodIdx) { chrModel[i].SetActive(false); } } // Active new chacter model and replace animator control script. // 次のキャラクターを表示し、アニメーター制御スクリプトを交換する。. // 현재 Idx의 캐릭터를 표시한 후 애니메이터 스크립트를 교환해준다. chrModel[activeLodIdx].SetActive(true); chrCtrl = chrModel[activeLodIdx].GetComponent <SantaAnimatorControl>(); chrModule = chrModel[activeLodIdx].GetComponent <ModuleSetupControl>(); // to display same place. chrModel[activeLodIdx].transform.position = chrModel[aIdx].transform.position; chrModel[activeLodIdx].transform.rotation = chrModel[aIdx].transform.rotation; //update module chrModule.SetAllModule((int)moduleSlider [0].value, (int)moduleSlider [1].value, (int)moduleSlider [2].value, (int)moduleSlider [3].value); chrModule.SetAllColor((int)textureSlider [0].value, (int)textureSlider [1].value, (int)textureSlider [2].value, (int)textureSlider [3].value); chrModule.UpdateMeshData(); chrCtrl.chrAnimator.Rebind(); // play Idle. chrCtrl.PlayClip(stateName[0], weaponPos[0]); // set 3D model infomation newly. // meshInfoMsg = chrCtrl.MeshData(); ModelInformationUI.GetComponentInChildren <Text>().text = modelName + "\n\n" + chrCtrl.MeshData(); // replace target of camera. gameObject.GetComponent <CamControl>().target = chrModel[activeLodIdx].transform; }
// Name of gameobject as number, play state of corresponding number. public void PlayClipBtn(GameObject self) { int idx = int.Parse(self.name); chrCtrl.PlayClip(stateName[idx], weaponPos[idx]); }