[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
190
(1): 2020/04/20(月)14:42 ID:zd2flDEV(1/7) AAS
>>184です
参照する方法は分かったのですが、弾を発射した後にプレイヤーの向きを変えるとそれに伴って弾の進行方向まで変わってしまうようになりました…
(右に発射したあと左を向くと弾の方向も左に変わってしまう…というような感じです)

発射した時点で進行方向を固定する関数などあれば教えていただきたいです。

>>185
一度は思いつくものの形にするには時間かかりますよね…
レスありがとうございます😊
193
(2): 2020/04/20(月)15:10 ID:zd2flDEV(2/7) AAS
>>191
Startに入れて実行したら弾が進まなくなりました…
なぜなんでしょうか…
199
(1): 2020/04/20(月)17:10 ID:zd2flDEV(3/7) AAS
>>196
GameObject Player;
SpriteRenderer Renderer;

void Update()
{
bool left =Renderer.flipX //左向きのときtrue

if(left==true)
{
transform.Translate(-0.5f,0,0);
}
else
{
transform.Translate(0.5f,0,0);
}

}

というスクリプトをUpdateに入れています
Update関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが…
202
(1): 2020/04/20(月)17:55 ID:zd2flDEV(4/7) AAS
>>201
public bool left を文頭に付け加えればメンバ変数になりますか?
それと向きの代入はどのように書けばいいのでしょうか?
206
(4): 2020/04/20(月)21:03 ID:zd2flDEV(5/7) AAS
GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;

void Start()
{

left = Renderer.flipX;
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();

if (left == true)
{
x = -0.5f;
}
else
{
x = 0.5f;
}

void Update()
{
transform.Translate(x, 0, 0);
}

とにかく手探りで書いてみました。
実行したところ、やはり弾が生成された地点で止まってしまいます。
どこを直せばいいのでしょうか…
209
(1): 2020/04/20(月)22:10 ID:zd2flDEV(6/7) AAS
>>207
Startでxに代入している-0.5fや0.5fは方向を決めるだけのものなんですか?
であればUpdate内にxと書いただけでは動かないのは納得です…
212
(2): 2020/04/20(月)22:30 ID:zd2flDEV(7/7) AAS
>>211
そうなんです!
これだとプレイヤーの向きを変えるたびに弾の方向も変わってしまうんです…
わざわざ書いてくださってありがとうございます
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.037s