質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

323閲覧

矢印キーの下を押した時のみカメラに向かって(手前側へ)進むようにしたい

toricotori

総合スコア14

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/11/13 12:13

現在、unity5、C#でキャラクターの移動スクリプトを書いており、
「矢印キーの上で奥へ移動し、左右で方向転換、キャラクターの背後に常にカメラがいる」という状態にしています。ななめ移動が可能な形です。
操作性を改善させ、
「矢印キーの上で奥へ移動し、左右で方向転換、キャラクターの背後に常にカメラがいるが、矢印キーの下を押した(後方180度の範囲へ移動したい)ときはカメラは背後に行かずキャラクターがカメラ方向に向かって進む」という状態にしたいと考えています。
現在のスクリプトをどう改造すべきか(もしくは書きなおすべきか)、ご教授いただきたいです。
現在のスクリプトは以下の通りです。

C#

1float dirH, dirV; 2 3dirH = Input.GetAxis ("Horizontal") ; 4dirV = Input.GetAxis ("Vertical"); 5 6 7if (dirH < -0.01f || dirH > 0.01f || dirV < -0.01f || dirV > 0.01f) 8{ 9 if (dirV < 0) //矢印キーの下を押したときは移動しない 10 { 11 dirV = 0; 12 } 13 else 14 { 15 dirRot += dirH; 16 vec = new Vector3 (Mathf.Sin (dirRot * Mathf.PI / 180.0f), 0.0f, Mathf.Cos (dirRot * Mathf.PI / 180.0f)); 17 transform.position = new Vector3 (transform.position.x + vec.x * dirV * 0.1,        18                      transform.position.y,             19         transform.position.z + vec.z * dirV * 0.1); 20 transform.eulerAngles = new Vector3 (0.0f, dirRot, 0.0f); 21 22 }

カメラの追従は、キャラクターの子にすることによって実装し、キャラクターの回転への追従もなめらかになっています。
if (dirV < 0)内のコマンドを変える形で少し考えたのですが、いい案がなかなか思いつきませんでした。
ご回答、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

UnityにあるStandardAssetsのTPSCharacterがおすすめです。
ここからImportできる

この中にあるTPSCharacter?ってのがほとんど同じようなことを再現してくれているので、
そこを参考にしたらいいと思います。

投稿2017/11/14 01:02

MasujimaRyohei

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toricotori

2017/11/16 12:24

ご回答ありがとうございます。 ダウンロードしてみたところ、キャラクター自体は思うような動きだと思いました。 ただ、カメラが難しく、プレイヤーが奥側に移動する時はカメラは常にプレイヤーの背後(プレイヤーの背中を映す)、プレイヤーが手前側に移動する時はカメラは常にプレイヤーの正面といった動きが確認できませんでした。
MasujimaRyohei

2017/11/16 19:24

見落としていたようです それだとMultipurposeCameraRigを使えば再現できますよ
MasujimaRyohei

2017/11/16 19:24

Camerasアセットの中にあります
toricotori

2017/11/22 07:53

お返事遅れまして申し訳ありません。 また試してみて、問題が発生しましたら質問させていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問