実現したいこと
2Dオブジェクトがマウスを追従するようにしたいです
前提
マウスを移動するとオブジェクトがマウスについてきて、右クリックすると半回転し元にもどる動作をめざしています。
(オブジェクトを動かして出てきた敵を右クリックで叩くイメージ)
しかしなぜか動作確認すると、最初から画面の左下にオブジェクトがいて、マウスをうごかすと微妙〜〜〜〜にマウスが動くとおりに動くのですが、画面の左端から直径1cmくらいの範囲内をうごうごするのみでマウスについてきません。
右クリックすると半回転して元に戻る動作はできています。
発生している問題・エラーメッセージ
エラーは特に出ていません
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; public class sushiManager : MonoBehaviour { public GameObject sushiObject; //座標用の変数 Vector3 mousePos, worldPos; Animator animator; // Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { { //マウス座標の取得 mousePos = Input.mousePosition; //スクリーン座標をワールド座標に変換 worldPos = Camera.main.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y,10f)); //ワールド座標を自身の座標に設定 transform.position = worldPos; } if (Input.GetMouseButtonDown(0)) { Debug.Log("入力されてる"); animator.SetTrigger("Move0"); } } }
試したこと(もともとこの↓コードを使っていましたが違うのかなと思い上記になおした経緯あり)
マウスを追従するスクリプトをいくつか参考にさせていただき同じように書いて見ましたがやはり同じように左下から動かなくなります。スクリプトじゃなくて別の部分に問題があるのでしょうか?
using System.Collections; using System.Collections.Generic; using UnityEngine; public class HammerManager : MonoBehaviour { public GameObject hammerObject; //追記 Animator animator; // Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); } // Update is called once per frame void Update() { var mousePosition = Input.mousePosition; //追記 mousePosition.z = 10; //追記 var pos = Camera.main.ScreenToWorldPoint(mousePosition);//追記 hammerObject.transform.position = pos;//追記 if (Input.GetMouseButtonDown(0)) { Debug.Log("入力されてる"); animator.SetTrigger("Move0"); } } }
補足情報(FW/ツールのバージョンなど)
特になし
対象のゲームオブジェクトがどんなオブジェクトかという説明がありませんが、それが UI のオブジェクトだから、とかだったりして。
bboydaisukeさん
コメントありがとうございます!
おっしゃる通り、UI→画像で、あらかじめ自作しておいた画像を使って、そこにスクリプトを貼り付けています…もしかしてそこなのでしょうか…そこなんでしょうね…ちょっと見てみます!
あ、すみません…
空のオブジェクト→コンポーネントからimageを追加
でした。うーん、なんだろう…再生押す前はそのオブジェクトは真ん中にあるのに、再生押すといきなり左下にあってそこから動いてくれないんですよね。
アニメーターとかにも原因があるのかなぁ?とも思いましたが知識なさすぎて原因の探求ができず。もう少し考えたり調べたりしてみます!
ありがとうございます。
回答1件
あなたの回答
tips
プレビュー