回答編集履歴

9

言い回し修正

2023/01/31 10:18

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -1,22 +1,22 @@
1
- Awakeの中でplayerInputにCoverAction(ワープのメソッド)を登録してますよね。
1
+ Awakeの中でplayerInputを通してPlayerにCoverAction(ワープのメソッド)を登録してますよね。
2
2
  ```C#
3
3
  playerInput.Player.CoverAction.started += CoverAction;//同
4
4
  ```
5
5
 
6
6
  で、今回はWarp(ワープオブジェクト)が2つ置いてありますよね。
7
7
  ということは、WarpのAwakeは2回呼ばれてるってことですよね。
8
- つまりゲームを起動時、playerInput(InputAction)には2箇所のCoverAction(ワープ処理)が登録されるということですよね。
8
+ つまりゲームを起動時、Playerには2箇所のCoverAction(ワープ処理)が登録されるということですよね。
9
9
 
10
10
  Acrtionを発火すると登録されている処理は全て実行されます。
11
- 今回でいうとplayerInputを実行するたびに「1-1のCoverAction」と「1-2のCoverAction」が順番に実行されるということです。
11
+ 今回でいうとPlayer.CoverAction.startedを実行するたびに「1-1のCoverAction」と「1-2のCoverAction」が順番に実行されるということです。
12
12
  コンソールにもワープが行われるたびに"Warp"が2ずつ増えてますよね?
13
13
  これは「1-2にワープした後、1-1にワープする」という2回のワープ処理が一度に行われているからです。
14
14
  なので1-1を踏んでも1-1に飛ばされているんじゃないでしょうか?
15
15
 
16
16
  故にワープ処理の登録&削除を
17
- 「ワープに触れた瞬間、ワープ処理をplayerInputに登録する」
17
+ 「ワープに触れた瞬間、ワープ処理をPlayerに登録する」
18
- 「ワープが終わったら、ワープ処理をplayerInputから削除する」
18
+ 「ワープが終わったら、ワープ処理をPlayerから削除する」
19
- という風にして、「ワープする時、playerInputには1つのワープ処理しか登録されていない状態」にすれば動くんじゃないでしょうか。
19
+ という風にして、「ワープする時、Playerには1つのワープ処理しか登録されていない状態」にすれば動くんじゃないでしょうか。
20
20
 
21
21
  つまり
22
22
  ```C#

8

言い回し修正

2023/01/31 05:49

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -16,7 +16,7 @@
16
16
  故にワープ処理の登録&削除を
17
17
  「ワープに触れた瞬間、ワープ処理をplayerInputに登録する」
18
18
  「ワープが終わったら、ワープ処理をplayerInputから削除する」
19
- という風にすれば動くんじゃないでしょうか。
19
+ という風にして、「ワープる時、playerInputには1つのワープ処理しか登録さていない状態」にすれば動くんじゃないでしょうか。
20
20
 
21
21
  つまり
22
22
  ```C#

7

言い回し修正

2023/01/31 05:48

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -8,7 +8,7 @@
8
8
  つまりゲームを起動時、playerInput(InputAction)には2箇所のCoverAction(ワープ処理)が登録されるということですよね。
9
9
 
10
10
  Acrtionを発火すると登録されている処理は全て実行されます。
11
- 今回でいうとplayerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。
11
+ 今回でいうとplayerInputを実行するたびに「1-1のCoverAction」と「1-2のCoverAction」が順番に実行されるということです。
12
12
  コンソールにもワープが行われるたびに"Warp"が2ずつ増えてますよね?
13
13
  これは「1-2にワープした後、1-1にワープする」という2回のワープ処理が一度に行われているからです。
14
14
  なので1-1を踏んでも1-1に飛ばされているんじゃないでしょうか?

6

言い回し修正

2023/01/31 05:47

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  で、今回はWarp(ワープオブジェクト)が2つ置いてありますよね。
7
7
  ということは、WarpのAwakeは2回呼ばれてるってことですよね。
8
- つまりゲームを起動時、playerInput(InputAction)には2のCoverAction(ワープ処理)が登録されるということですよね。
8
+ つまりゲームを起動時、playerInput(InputAction)には2箇所のCoverAction(ワープ処理)が登録されるということですよね。
9
9
 
10
10
  Acrtionを発火すると登録されている処理は全て実行されます。
11
11
  今回でいうとplayerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。

5

言い回し修正

2023/01/31 05:46

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -13,7 +13,7 @@
13
13
  これは「1-2にワープした後、1-1にワープする」という2回のワープ処理が一度に行われているからです。
14
14
  なので1-1を踏んでも1-1に飛ばされているんじゃないでしょうか?
15
15
 
16
- なのでワープ処理の登録&削除を
16
+ 故にワープ処理の登録&削除を
17
17
  「ワープに触れた瞬間、ワープ処理をplayerInputに登録する」
18
18
  「ワープが終わったら、ワープ処理をplayerInputから削除する」
19
19
  という風にすれば動くんじゃないでしょうか。

4

言い回し修正

2023/01/31 05:44

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  で、今回はWarp(ワープオブジェクト)が2つ置いてありますよね。
7
7
  ということは、WarpのAwakeは2回呼ばれてるってことですよね。
8
- つまりゲーム起動、playerInput(InputAction)には2つのCoverAction(ワープ処理)が登録されているということですよね。
8
+ つまりゲーム起動、playerInput(InputAction)には2つのCoverAction(ワープ処理)が登録されるということですよね。
9
9
 
10
10
  Acrtionを発火すると登録されている処理は全て実行されます。
11
11
  今回でいうとplayerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。

3

コード修正

2023/01/31 04:10

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -20,10 +20,10 @@
20
20
 
21
21
  つまり
22
22
  ```C#
23
- playerInput.Player.CoverAction.started += CoverAction
23
+ playerInput.Player.CoverAction.started += CoverAction;
24
24
  ```
25
25
  をAwakeからOnTriggerStayに移し、CoverAction内に
26
26
  ```C#
27
- playerInput.Player.CoverAction.started -= CoverAction
27
+ playerInput.Player.CoverAction.started -= CoverAction;
28
28
  ```
29
29
  を追加で書く的な感じです。

2

言い回し修正

2023/01/31 04:05

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -11,7 +11,7 @@
11
11
  今回でいうとplayerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。
12
12
  コンソールにもワープが行われるたびに"Warp"が2ずつ増えてますよね?
13
13
  これは「1-2にワープした後、1-1にワープする」という2回のワープ処理が一度に行われているからです。
14
- なので1-1を踏んでも1-1に飛ばされています。
14
+ なので1-1を踏んでも1-1に飛ばされているんじゃないでしょうか?
15
15
 
16
16
  なのでワープ処理の登録&削除を
17
17
  「ワープに触れた瞬間、ワープ処理をplayerInputに登録する」

1

言い回し修正

2023/01/31 04:02

投稿

UnchFullburst
UnchFullburst

スコア663

test CHANGED
@@ -7,8 +7,8 @@
7
7
  ということは、WarpのAwakeは2回呼ばれてるってことですよね。
8
8
  つまりゲーム起動後、playerInput(InputAction)には2つのCoverAction(ワープ処理)が登録されているということですよね。
9
9
 
10
- Acrtion登録されている処理全て実行されます。
10
+ Acrtionを発火すると登録されている処理全て実行されます。
11
- playerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。
11
+ 今回でいうとplayerInputを実行するたびに「1-1のワープ処理」と「1-2のワープ処理」が順番に実行されるということです。
12
12
  コンソールにもワープが行われるたびに"Warp"が2ずつ増えてますよね?
13
13
  これは「1-2にワープした後、1-1にワープする」という2回のワープ処理が一度に行われているからです。
14
14
  なので1-1を踏んでも1-1に飛ばされています。