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

質問編集履歴

1

質問の書き方を理解しておらず間違ってタイトルだけ記入して投稿してしまったため再編集です。

2020/12/04 05:21

投稿

hosituka
hosituka

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,16 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ここに質問の内容を詳しく書いてください。
3
+ https://dkrevel.com/makegame-beginner/make-2d-action-jump/
4
- (例)PHP(CakePHP)で●●なシステムを作ってい
4
+ このサイトを見本にプログラムをているのでがこのサイトの<高さを調節できるジャンプを作ろう>
5
- ■■な機能を実装中に以下エラーメッセージ発生しした。
5
+ 項目できせん
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
+ 矢印キーの上を押すことでジャンプ出来るはずができませんでした。一応
9
+ コンソールは見ましたがエラーは発生しておりませんUnityのバージョンは2020年の1.14fです。
10
+ unityのEdit>ProjectSettingから左メニューのInputを選択して、Verticalの中
11
+ のPositive Buttonが違うのかと思い確認しましたがちゃんとupになっていました
8
12
 
13
+ 誰か解決案くださるとありがたいです
9
14
  ```
10
15
  エラーメッセージ
11
16
  ```
@@ -14,6 +19,90 @@
14
19
 
15
20
  ```ここに言語名を入力
16
21
  ソースコード
22
+ using System.Collections;
23
+ using System.Collections.Generic;
24
+ using UnityEngine;
25
+
26
+ public class player : MonoBehaviour
27
+ {
28
+ //インスペクターで設定する
29
+ public float speed; //速度
30
+ public float gravity; //重力
31
+ public float jumpSpeed;//ジャンプする速度
32
+ public float jumpHeight;//高さ制限
33
+ public Ground ground; //接地判定
34
+
35
+ //プライベート変数
36
+ private Animator anim = null;
37
+ private Rigidbody2D rb = null;
38
+ private bool isGround = false;
39
+ private bool isJump = false;
40
+ private float jumpPos = 0.0f;
41
+
42
+ void Start()
43
+ {
44
+ //コンポーネントのインスタンスを捕まえる
45
+ anim = GetComponent<Animator>();
46
+ rb = GetComponent<Rigidbody2D>();
47
+ }
48
+
49
+ void FixedUpdate()
50
+ {
51
+ //接地判定を得る
52
+ isGround = ground.IsGround();
53
+
54
+ //キー入力されたら行動する
55
+ float horizontalKey = Input.GetAxis("Horizontal");
56
+ float xSpeed = 0.0f;
57
+ float ySpeed = -gravity;
58
+ float verticalKey = Input.GetAxis("Vertical");
59
+
60
+ if (isGround)
61
+ {
62
+ if (verticalKey > 0)
63
+ {
64
+ ySpeed = jumpSpeed;
65
+ jumpPos = transform.position.y; //ジャンプした位置を記録する
66
+ isJump = true;
67
+ }
68
+ else
69
+ {
70
+ isJump = false;
71
+ }
72
+ }
73
+ else if (isJump)
74
+ {
75
+ //上ボタンを押されている。かつ、現在の高さがジャンプした位置から自分の決めた位置より下ならジャンプを継続する
76
+ if (verticalKey > 0 && jumpPos + jumpHeight > transform.position.y)
77
+ {
78
+ ySpeed = jumpSpeed;
79
+ }
80
+ else
81
+ {
82
+ isJump = false;
83
+ }
84
+ }
85
+ if (horizontalKey > 0)
86
+ {
87
+ transform.localScale = new Vector3(2, 2, 1);
88
+ anim.SetBool("走る", true);
89
+ xSpeed = speed;
90
+ }
91
+ else if (horizontalKey < 0)
92
+ {
93
+ transform.localScale = new Vector3(-2, 2, 1);
94
+ anim.SetBool("走る", true);
95
+ xSpeed = -speed;
96
+ }
97
+ else
98
+ {
99
+ anim.SetBool("走る", false);
100
+ xSpeed = 0.0f;
101
+ }
102
+ rb.velocity = new Vector2(xSpeed, ySpeed);
103
+ }
104
+ }
105
+
17
106
  ```
18
107
 
19
108
  ### 試したこと