前提
いつも参考にさせていただいております。
Unityでスマホ用のアクションゲームを作っています。
オブジェクトを8方向に割り当てられたスプライトを切り替えつつクリックした位置に移動させたいのですが、「スプライトを切り替える」「クリックした位置に移動する」それぞれについてはできるんですが二つを組み合わせることができません。
なにとぞお力添えをよろしくお願いします。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- ▲8方向に割り当てられたスプライトを進行方向に合わせて表示したい。
- ▲クリックした位置に移動させたい。
- ▲動きが止まった時にアニメーションをアニメーションが開始したスプライトで停止させたい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
C# using UnityEngine; using System.Collections; using System.Collections.Generic; [RequireComponent(typeof(BaseMortionController))] public class BaseCharacterController : MonoBehaviour { private BaseMortionController m_Character; Vector3 touchWorldPosition; private void Awake() { m_Character = GetComponent<BaseMortionController>(); } private void Update() { } private void FixedUpdate() { if (Input.GetMouseButtonDown(0)) { Vector3 touchScreenPosition = Input.mousePosition; touchScreenPosition.z = 5.0f; Camera camera = Camera.main; touchWorldPosition = camera.ScreenToWorldPoint(touchScreenPosition); float h = Input.mousePosition.x; float v = Input.mousePosition.y; m_Character.Move(h, v); } }
該当のソースコード
C# using UnityEngine; using System.Collections; public class BaseMortionController : MonoBehaviour { private Animator m_Anim; private Rigidbody2D m_Rigidbody2D; Vector3 touchWorldPosition; [SerializeField] private float move_speed = 7.0f; private void Awake() { m_Anim = GetComponent<Animator>(); m_Rigidbody2D = GetComponent<Rigidbody2D>(); } public void Move(float h_move, float v_move) { Vector3 direction = new Vector3 (h_move, v_move).normalized; m_Rigidbody2D.velocity = direction * move_speed; m_Anim.SetFloat("Direction_x", h_move); m_Anim.SetFloat("Direction_y", v_move); } ### 試したこと キー入力タイプのスクリプトにマウスタイプのスクリプトをいろいろ組み合わせてみました。 ### 補足情報(FW/ツールのバージョンなど) Unity 2021.3.14f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。