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

質問編集履歴

2

スペルの編集

2020/12/12 14:41

投稿

CraftTable
CraftTable

スコア234

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  現在FPSを開発している者です
2
- よくあるFPSの挙動としてスライディングの実装(TaitanfallやAPEXのような)をしようと思っています
2
+ よくあるFPSの挙動としてスライディングの実装(TitanfallやAPEXのような)をしようと思っています
3
3
  頭の中にあるスライディングの方法はこうです:
4
4
  1.Rigidbody.AddForce()で移動
5
5
  2.移動中にしゃがみ、しゃがんだ時に加速度が存在する方向にAddForceで力を加える(しゃがみはbool型変数で制御)

1

コードの修正

2020/12/12 14:41

投稿

CraftTable
CraftTable

スコア234

title CHANGED
File without changes
body CHANGED
@@ -12,61 +12,79 @@
12
12
 
13
13
  移動としゃがみに関するスクリプトです
14
14
  ```
15
+ float speed;
16
+ [SerializeField]
15
- if (Input.GetKeyDown(KeyCode.C) && Crouching == false)
17
+ float DashSpeed;
16
- {
18
+ [SerializeField]
19
+ float JanpSpeed;
20
+ [SerializeField]
21
+ float WalkSpeed;
22
+ [SerializeField]
17
- Crouching = true;
23
+ float CrouchingSpeed;
18
- }
24
+ [SerializeField]
19
- else if (Input.GetKeyDown(KeyCode.C) && Crouching == true)
25
+ GameObject Camera;
20
- {
26
+ Rigidbody rb;
27
+ [SerializeField]
21
- Crouching = false;
28
+ bool Crouching;
22
- }
23
29
 
30
+ void Update
31
+ {
32
+ if (Input.GetKeyDown(KeyCode.C) && Crouching == false)
33
+ {
34
+ Crouching = true;
35
+ }
36
+ else if (Input.GetKeyDown(KeyCode.C) && Crouching == true)
37
+ {
38
+ Crouching = false;
39
+ }
40
+
24
- if (Crouching == true)
41
+ if (Crouching == true)
25
- {
42
+ {
26
- Camera.transform.position = new Vector3(transform.position.x, transform.position.y + 0.619f, transform.position.z);
43
+ Camera.transform.position = new Vector3(transform.position.x, transform.position.y + 0.619f, transform.position.z);
27
- speed = CrouchingSpeed;
44
+ speed = CrouchingSpeed;
28
- }
45
+ }
29
- else
46
+ else
30
- {
47
+ {
31
- Camera.transform.position = new Vector3(transform.position.x, transform.position.y + 1.238f, transform.position.z);
48
+ Camera.transform.position = new Vector3(transform.position.x, transform.position.y + 1.238f, transform.position.z);
32
- }
49
+ }
33
50
 
34
- if (getshift)
51
+ if (getshift)
35
- {
52
+ {
36
- speed = DashSpeed;
53
+ speed = DashSpeed;
37
- }
54
+ }
38
- else if (Crouching == false)
55
+ else if (Crouching == false)
39
- {
56
+ {
40
- speed = WalkSpeed;
57
+ speed = WalkSpeed;
41
- }
58
+ }
42
59
 
43
- if (Input.GetKey(KeyCode.W))
60
+ if (Input.GetKey(KeyCode.W))
44
- {
61
+ {
45
- var tmp = -transform.forward * speed - rb.velocity;
62
+ var tmp = -transform.forward * speed - rb.velocity;
46
- tmp.y = 0;
63
+ tmp.y = 0;
47
- rb.AddForce(tmp);
64
+ rb.AddForce(tmp);
48
- }
65
+ }
49
- if (Input.GetKey(KeyCode.A))
66
+ if (Input.GetKey(KeyCode.A))
50
- {
67
+ {
51
- var tmp = -transform.right * speed - rb.velocity;
68
+ var tmp = -transform.right * speed - rb.velocity;
52
- tmp.y = 0;
69
+ tmp.y = 0;
53
- rb.AddForce(tmp);
70
+ rb.AddForce(tmp);
54
- }
71
+ }
55
- if (Input.GetKey(KeyCode.D))
72
+ if (Input.GetKey(KeyCode.D))
56
- {
73
+ {
57
- var tmp = transform.right * speed - rb.velocity;
74
+ var tmp = transform.right * speed - rb.velocity;
58
- tmp.y = 0;
75
+ tmp.y = 0;
59
- rb.AddForce(tmp);
76
+ rb.AddForce(tmp);
60
- }
77
+ }
61
- if (Input.GetKey(KeyCode.S))
78
+ if (Input.GetKey(KeyCode.S))
62
- {
79
+ {
63
- var tmp = transform.forward * speed - rb.velocity;
80
+ var tmp = transform.forward * speed - rb.velocity;
64
- tmp.y = 0;
81
+ tmp.y = 0;
65
- rb.AddForce(tmp);
82
+ rb.AddForce(tmp);
66
- }
83
+ }
67
-
84
+
68
- if (Input.GetKeyDown(KeyCode.Space))
85
+ if (Input.GetKeyDown(KeyCode.Space))
69
- {
86
+ {
70
- rb.velocity = new Vector3(rb.velocity.x, JanpSpeed, rb.velocity.z);
87
+ rb.velocity = new Vector3(rb.velocity.x, JanpSpeed, rb.velocity.z);
71
- }
88
+ }
89
+ }
72
90
  ```