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

回答編集履歴

2

解決の方法を追記

2020/03/01 08:17

投稿

kawa0x0A
kawa0x0A

スコア271

answer CHANGED
@@ -7,4 +7,46 @@
7
7
  ---
8
8
 
9
9
  UnityChanControlScriptWithRgidBodyクラスのChangeControlメソッドにアクセスできないため、エラーが発生しています。
10
- UnityChanControlScriptWithRgidBodyクラスにChangeControlメソッドの定義が存在していること、ChangeControlメソッドがpublicになっているか確かめてみてください。
10
+ UnityChanControlScriptWithRgidBodyクラスにChangeControlメソッドの定義が存在していること、ChangeControlメソッドがpublicになっているか確かめてみてください。
11
+
12
+ ---
13
+
14
+ ChangeCharaコンポーネントはMainCameraにアタッチして構いません。
15
+ UnityChanControlScriptWithRgidBodyコンポーネントをアタッチしているゲームオブジェクトにControlOnOffCharaも一緒にアタッチしてあげてください。
16
+ (1つのゲームオブジェクトに両方のスクリプトがくっついている状態にしてください)
17
+
18
+ その後にchangecharacterスクリプトを以下のように変更してください。
19
+ (参考にしているサイトに書かれている内容と同じになります)
20
+ ```C#
21
+ void Start()
22
+ {
23
+ charaList[0].GetComponent<ControlOnOffChara>().ChangeControl(true);
24
+ }
25
+ ```
26
+
27
+ ```C#
28
+ void ChangeCharacter(int tempNowChara) {
29
+ // 現在操作しているキャラクターを動かなくする
30
+ charaList[tempNowChara].GetComponent<ControlOnOffChara>().ChangeControl(false);
31
+
32
+ // 次のキャラクターの番号を設定
33
+ var nextChara = tempNowChara + 1;
34
+ if(nextChara >= charaList.Count) {
35
+ nextChara = 0;
36
+ }
37
+
38
+ // 次のキャラクターを動かせるようにする
39
+ charaList[nextChara].GetComponent<ControlOnOffChara>().ChangeControl(true);
40
+
41
+ // 現在のキャラクター番号を保持する
42
+ nowChara = nextChara;
43
+ }
44
+ ```
45
+
46
+ これでエラーが消えるはずです。
47
+ 最終的な目的としてはスクリプトからの操作で移動したり、モデルのアニメーションを再生させたりしたいのだと思いますが、長くなりそうなのでひとまずエラーを無くすところまで書いておきます。
48
+
49
+ 参考になりそうなページを一応書いておきます。
50
+
51
+ [Unityのアニメーションの切り替えシステムとスクリプト](https://gametukurikata.com/animationanimator/changeanimation)
52
+ [ユニティちゃんをキー入力で移動させる - 歩きのモーションアニメーションを設定する (Unityプログラミング)](https://www.ipentec.com/document/unity-move-unity-chan)

1

質問への回答

2020/03/01 08:17

投稿

kawa0x0A
kawa0x0A

スコア271

answer CHANGED
@@ -2,4 +2,9 @@
2
2
 
3
3
  ```C#
4
4
  using UnityChan;
5
- ```
5
+ ```
6
+
7
+ ---
8
+
9
+ UnityChanControlScriptWithRgidBodyクラスのChangeControlメソッドにアクセスできないため、エラーが発生しています。
10
+ UnityChanControlScriptWithRgidBodyクラスにChangeControlメソッドの定義が存在していること、ChangeControlメソッドがpublicになっているか確かめてみてください。