2017年07月18日
unity5でプレイヤーの移動をしてみる : 取り敢えず実装
今回は、解説なしで取り敢えず実装、という形で
この記事はやっていきます。
更新、遅れましたね...。
色々大変でした...。
夏休みだというのに、
課題と部活ばかりですし...。
まぁ、気を取り直していってみましょう!
スポンサードリンク
まずはソースコードを出しますね。
以上がソースコードとなります。
これを使い、プレイヤーの移動を行います。
まず、事前準備として色々します。
始めに、動かすプレイヤーを作成します。
Hierarchyで右クリック、
3D Object > Capsule でカプセルを作成します。
そしたら、カプセルを選択し、
右のPositionを
x, z を共に0とし、
y を 3 にします。
プレイヤーの作成は終わりです。
次に、
Project > Create > C# Scriptでスクリプトを作成し、
名前を「Player_Move」とします。
(ここで、Player_Moveとしなければエラーが出ます。
仕様が分かっていれば変更オーケーです!)
そしたらPlayer_Moveを開き、
初めからから記述してある文章を全て消し、
上のソースコードを貼り付けます。
ここで1つ、訂正をお願いします!
勝手に改行されていなければ、ですが…、
23, 24行目になるでしょうか、
「<>」と、大文字になっているので、
「<>」この様に小文字に直して下さい!
html(インターネット上のブログラム)の
関係で、こうするしかなかったんです……。
2017/8/17 追記
上のメッセージは無視して下さい。
小文字に修正しました。
次はプレイヤー(Capsule)に
「Rigidbody」を付けます。
これがないと動きません!
そしたら作ったプレイヤー(Capsule)に
Player_Moveと取り付けます。
(ProjectのスクリプトをCapsuleにD&Dでできます。)
これでプレイヤーにスクリプトが取り付けれました。
プレイヤーが動くための地面がないので
地面を作ります。
[Hierarchy > 3D Object > Plane]で地面を作成し、
x, zのScaleを10にします。
これで地面が大きくなったと思います。
そして最後、
プレイヤー(Capsule)についている
「Player_Move」をInspectorで見てください。
その中にある、「Cam」に
Hierarchyの「Main Camera」をD&Dします。
あとは、実行!
......と言いたいところですが、
Player_Move の MoveSpeed を適当に設定してください。
このままだと、「移動の速度が0」、
つまり移動しないので......。
30くらいが丁度いいかと。
これで、晴れて移動が可能です!
今度こそ、実行すれば動きます!
お疲れ様でした!
実装編は、これにて終了です。
後は、解説ですね。
これが終わったら……
何しましょうかね?
まぁ、それは後々
考えていきます。
それでは、また次回まで。
スポンサードリンク
この記事はやっていきます。
更新、遅れましたね...。
色々大変でした...。
夏休みだというのに、
課題と部活ばかりですし...。
まぁ、気を取り直していってみましょう!
スポンサードリンク
ソースコード
まずはソースコードを出しますね。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Player_Move : MonoBehaviour {
public Animator anim;
public bool isGrounded;
public RaycastHit hit;
public float InputHorizontal;
public float InputVertical;
public Rigidbody rb;
public float moveSpeed;
public float jumpPower = 30f;
public GameObject Cam;
public Vector3 Cam_forward;
public Vector3 move_forward;
public Vector3 InputMagnitude;
void Start () {
rb = this.gameObject.GetComponent<Rigidbody>();
anim = this.gameObject.GetComponent<Animator>();
}
void FixedUpdate () {
//*****接地判定*****//
if (Physics.SphereCast(this.gameObject.transform.position + new Vector3(0, 2f, 0), transform.lossyScale.x * 0.5f, Vector3.down, out hit, 2f)) {
isGrounded = true;
} else {
isGrounded = false;
}
//*****************//
}
void Update() {
if (isGrounded) {
InputHorizontal = Input.GetAxis("Horizontal");
InputVertical = Input.GetAxis("Vertical");
InputMagnitude = new Vector3(InputHorizontal, 0, InputVertical);
jumpPower = 30f;
//*****移動*****//
Cam_forward = Vector3.Scale(Cam.transform.forward, new Vector3(1, 0, 1)).normalized;
move_forward = Cam_forward * InputVertical + Cam.transform.right * InputHorizontal;
rb.velocity = move_forward * moveSpeed + new Vector3(0, rb.velocity.y, 0);
//移動方向に向きを変える
if (move_forward != Vector3.zero) {
transform.rotation = Quaternion.LookRotation(move_forward);
}
//***************//
}
}
}
以上がソースコードとなります。
これを使い、プレイヤーの移動を行います。
移動の実装
まず、事前準備として色々します。
始めに、動かすプレイヤーを作成します。
Hierarchyで右クリック、
3D Object > Capsule でカプセルを作成します。
そしたら、カプセルを選択し、
右のPositionを
x, z を共に0とし、
y を 3 にします。
プレイヤーの作成は終わりです。
次に、
Project > Create > C# Scriptでスクリプトを作成し、
名前を「Player_Move」とします。
(ここで、Player_Moveとしなければエラーが出ます。
仕様が分かっていれば変更オーケーです!)
そしたらPlayer_Moveを開き、
初めからから記述してある文章を全て消し、
上のソースコードを貼り付けます。
ここで1つ、訂正をお願いします!
勝手に改行されていなければ、ですが…、
23, 24行目になるでしょうか、
「<>」と、大文字になっているので、
「<>」この様に小文字に直して下さい!
html(インターネット上のブログラム)の
関係で、こうするしかなかったんです……。
2017/8/17 追記
上のメッセージは無視して下さい。
小文字に修正しました。
次はプレイヤー(Capsule)に
「Rigidbody」を付けます。
これがないと動きません!
そしたら作ったプレイヤー(Capsule)に
Player_Moveと取り付けます。
(ProjectのスクリプトをCapsuleにD&Dでできます。)
これでプレイヤーにスクリプトが取り付けれました。
プレイヤーが動くための地面がないので
地面を作ります。
[Hierarchy > 3D Object > Plane]で地面を作成し、
x, zのScaleを10にします。
これで地面が大きくなったと思います。
そして最後、
プレイヤー(Capsule)についている
「Player_Move」をInspectorで見てください。
その中にある、「Cam」に
Hierarchyの「Main Camera」をD&Dします。
あとは、実行!
......と言いたいところですが、
Player_Move の MoveSpeed を適当に設定してください。
このままだと、「移動の速度が0」、
つまり移動しないので......。
30くらいが丁度いいかと。
これで、晴れて移動が可能です!
今度こそ、実行すれば動きます!
お疲れ様でした!
終わりに
実装編は、これにて終了です。
後は、解説ですね。
これが終わったら……
何しましょうかね?
まぁ、それは後々
考えていきます。
それでは、また次回まで。
スポンサードリンク
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/6505070
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
※ ブログに表示されるのは、主の承認が必要なので時間がかかります!
コメントに気づかない場合もありますので、返信が遅れる場合も...