if(オブジェクトがforward方向に動く == true)
{
}
みたいなことがしたいのですが、条件文のなかをどう書いたらいいかわかりません。
どなたか教えてくださいm(_ _)m
現状は↓のようなスクリプトでオブジェクトを動かしています
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
public float speed;
// Update is called once per frame void Update() { if(Input.GetKey(KeyCode.UpArrow)) { transform.Translate(Vector3.forward * Time.deltaTime * speed); } if (Input.GetKey(KeyCode.DownArrow)) { transform.Translate(-Vector3.forward * Time.deltaTime * speed); } }
}
Rigidbodyを使用しているか、移動時の入力は何を使っているかなど現在の移動方法も記述して下さい
わかりました!rigidbodyを使った方が良い場合は教えて欲しいです!
if(Input.GetKey(KeyCode.UpArrow))
が「オブジェクトがforward方向に動く」条件文で良いのではないでしょうか
何を実装する為の質問なのか不明なのですがこちらの質問と関連があったりするのでしょうか?
unity オブジェクトを正面方向に移動させない方法について
https://teratail.com/questions/366158
不明瞭なところが多くてすみません。
実装したいこととしては注射針を人体にさす際、刺した後に注射針を差し込んだ方向と平行な方向にのみ注射を動かせるようにしたいです。
そのためにforward方向またはleft方向に移動しようとした際に移動しようとしたむきと逆向きにオブジェクトが動くようにプログラムを組み、forward方向とleft方向へ動かせないようにしようと思いました(もちろんright, back方向も同様)。そしてそのためにまずはforward方向に動いたかどうかわ識別する条件文の組み方について質問しました。
やりたい事を読む限りでは注射針を刺す前、刺した後をboolでフラグ管理してキー入力の条件式部分で止めてしまう方が良いのではと思います
どうしてもその方法が良いのであれば既に回答が付いているのでそちらの方法で試してみて下さい
わかりました!ありがとうございます。