質問するログイン新規登録

回答編集履歴

1

コード修正

2020/01/28 01:25

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -1,7 +1,18 @@
1
1
  モデル側でマテリアルを複数セットしている状態なら
2
2
  `this.GetComponent<Renderer>().sharedMaterial = _material[i];`
3
3
  この部分を
4
- `this.GetComponent<Renderer>().sharedMaterials[0] = _material[i];`
4
+ ~~`this.GetComponent<Renderer>().sharedMaterials[0] = _material[i];`~~
5
5
  こう変えればいいんじゃないでしょうか。
6
6
 
7
- ちなみにマテリアルを複製する(共有しない)なら`sharedMaterials`ではなく`materials`でよいかと。
7
+ ちなみにマテリアルを複製する(共有しない)なら`sharedMaterials`ではなく`materials`でよいかと。
8
+
9
+ ---
10
+
11
+ (2020/01/28追記)コードが適切でなかった為修正します。
12
+ ```C#
13
+ Material[] materials = this.GetComponent<Renderer>().sharedMaterials;
14
+ materials[0] = _material[i];
15
+ this.GetComponent<Renderer>().sharedMaterials = materials;
16
+ ```
17
+ 参考:
18
+ [c# - How to replace element in MeshRenderer.sharedMaterials - Stack Overflow](https://stackoverflow.com/questions/55849541/how-to-replace-element-in-meshrenderer-sharedmaterials)