unity脚本中切换材质、修改模型文件中的动画clip

动态切换模型材质

  • 在Inspector中切换很简单,直接找到材质球点击切换(图1-1)


    unity脚本中切换材质、修改模型文件中的动画clip_第1张图片
    1-1 面板中切换
  • 在脚本中需要找到MeshRender组件,然后替换

  1. public Material[] suliaoMaterials;
  2. suliaoMeshRender= suliaoQingting.GetComponent ();
  3. int random = Random.Range(0,3); // Material数组长度为3
    suliaoMeshRender.material = suliaoMaterials[random];

修改模型文件中的动画clip

有些带动画clip的fbx文件,可以当做是一个预制体Prefab,使用中可能会破坏这个预制体的结构,改变结构会动画clip会失效,但是如果打开动画clip会发现它是只读的(图2-1),这时候可能就会用到修改文件中的动画clip的方式了


unity脚本中切换材质、修改模型文件中的动画clip_第2张图片
2-1 模型中的动画只读文件

操作步骤:

  1. 选中模型文件中的动画clip CTRL+D,之后这个动画文件会被复制为另一份文件,把它重命名为区分于原来的文件名,用新的动画文件替换面板中的Animation 片段(图 2-2)


    unity脚本中切换材质、修改模型文件中的动画clip_第3张图片
    2-2 替换旧的动画片段
  2. 用Window下的Animation打开新的动画文件,此动画文件中的信息可修改(2-3),其中的信息记录的是fbx结构被破坏之前的动画参数,根据自己需要进行修改(如果仅仅是由于结构改变导致fbx预制体毁坏,还想应用之前的动画信息,CTRL+C/V之前的动画信息非常好用...)


    unity脚本中切换材质、修改模型文件中的动画clip_第4张图片
    2-3 修改文件中旧的动画参数
  3. 对动画片段进行播放
    if (!idleAnimation.isPlaying) {
    int i = Random.Range (0,2);
    if (i == 0)
    idleAnimation.Play ("yuetuCameraAni1");
    else
    idleAnimation.Play ("yuetuGanAni1");
    }

你可能感兴趣的:(unity脚本中切换材质、修改模型文件中的动画clip)