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

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

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

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

Q&A

解決済

1回答

3204閲覧

横スクロールアクションゲーム 移動

BALDRSKY

総合スコア19

C#

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

0グッド

0クリップ

投稿2017/11/30 05:18

横スクロール型のアクションでマウス座標の位置にキャラをいどうさせているのですが、これを横軸だけで動かしたいのですがここからどうすればいいのでしょうか。
あとマウスの場所に一瞬で動くので少し遅らせて動かしたいのですがなにかいい方法がないでしょうか?

現在のScriptです
参考にしたサイト
https://gist.github.com/Buravo46/8367810

using UnityEngine;
using System.Collections;

public class MouseSynchronizeObjectScript : MonoBehaviour {
// 位置座標
private Vector3 position;
// スクリーン座標をワールド座標に変換した位置座標
private Vector3 screenToWorldPointPosition;
// Use this for initialization
void Start () {

} // Update is called once per frame void Update () { // Vector3でマウス位置座標を取得する position = Input.mousePosition; // Z軸修正 position.z = 10f; // マウス位置座標をスクリーン座標からワールド座標に変換する screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position); // ワールド座標に変換されたマウス座標を代入 gameObject.transform.position = screenToWorldPointPosition; }

}

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

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

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

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

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

guest

回答1

0

ベストアンサー

横軸だけで動かしたいのですがここからどうすればいいのでしょうか。

X座標だけ動かすようにすればよいです。

マウスの場所に一瞬で動くので少し遅らせて動かしたいのですがなにかいい方法がないでしょうか?

transform.positionscreenToWorldPointPositionへ徐々に近づくように、毎フレーム計算すればよいです。
この場合、Vector3.Lerp()Mathf.Lerp()などを使うと便利です。

上記を考慮した上で、ソースコードを書くと以下のようになります。

C#

1using UnityEngine; 2using System.Collections; 3 4public class MouseSynchronizeObjectScript : MonoBehaviour 5{ 6 // 位置座標 7 private Vector3 position; 8 // スクリーン座標をワールド座標に変換した位置座標 9 private Vector3 screenToWorldPointPosition; 10 // Use this for initialization 11 void Start() 12 { 13 14 } 15 16 // Update is called once per frame 17 void Update() 18 { 19 // Vector3でマウス位置座標を取得する 20 position = Input.mousePosition; 21 // Z軸修正 22 position.z = 10f; 23 // マウス位置座標をスクリーン座標からワールド座標に変換する 24 screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position); 25 // [変更] ワールド座標に変換されたマウス座標へ動かす 26 transform.position = new Vector3(Mathf.Lerp(transform.position.x, screenToWorldPointPosition.x, 0.1f), transform.position.y, transform.position.z); 27 } 28}

ソースコードは「```」×2で囲むと、見やすくなるのでそうしてください。

投稿2017/11/30 05:52

fiveHundred

総合スコア9801

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

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

BALDRSKY

2017/11/30 06:03

すいません次は気おつけます回答ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問