[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
193
(2): 2020/04/20(月)15:10 ID:zd2flDEV(2/7) AAS
>>191
Startに入れて実行したら弾が進まなくなりました…
なぜなんでしょうか…
194: 2020/04/20(月)15:49 ID:BqIKHtjL(1) AAS
>>192
前者でも元の値が変わったときに再計算をはさんでおけばバグは起きないだろうし、攻撃のたびに単純な計算するくらいの負担を気にする必要があるとも思えないです。
攻撃速度が1秒間に100回で複数の敵に多段ヒットしまくる様な特殊なゲームでなければですが。

>>193
方向の決定をStartでして、その方向にupdateで進めればいいんじゃない?
195
(1): 2020/04/20(月)16:27 ID:hAG3HiSQ(1/2) AAS
scriptを用いて指定オブジェクトの色をGetComponent<Image>().material.color で変更しようとしたところ
指定したオブジェクト以外の色も変更されてしまいます。
指定したオブジェクトのみ変更させたい場合どうしたらよいでしょうか

Default UI Material というのが指定した色になっていました。
196
(1): 2020/04/20(月)16:35 ID:7TeDGIGu(2/5) AAS
>>193
おい!w
関数理解して組んでるのか?
197: 2020/04/20(月)16:36 ID:7TeDGIGu(3/5) AAS
>>195
確か、マテリアルカラーはパレットだから、ほかのオブジェクトでも使ってたら変わったよ。
それが嫌なら専用のマテリアルを作るのが1番かな。
198: 2020/04/20(月)16:46 ID:hAG3HiSQ(2/2) AAS
返答ありがとうございます。
指定したImageオブジェクト(ほかのオブジェクトも)のmaterialを設定していませんでした。
指定オブジェクトのmaterialを「Sprites-Default」に設定したところ
指定したオブジェクトのみ色を変えることができました。ありがとうございます。
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関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが…
200
(1): 2020/04/20(月)17:33 ID:QzIkkg0M(1) AAS
unity(2D)って、ひょっとしてそれほど画像の大きさは気にしなくていいですか?
カメラサイズとかで調整して、カメラで見えたものがそのまま映像として出る感じ?
201
(1): 2020/04/20(月)17:40 ID:5Q+qVe+b(1) AAS
>>199
leftをメンバ変数にしてstart()で向きを代入すればいい
202
(1): 2020/04/20(月)17:55 ID:zd2flDEV(4/7) AAS
>>201
public bool left を文頭に付け加えればメンバ変数になりますか?
それと向きの代入はどのように書けばいいのでしょうか?
203: 2020/04/20(月)19:41 ID:7TeDGIGu(4/5) AAS
>>202
そんで、left=render…をスタートにね。
204
(1): 2020/04/20(月)20:05 ID:vPtvjXeA(1/2) AAS
インスペクターの変数表示を折りたたみしたくて、
「InspectorFoldoutGroup」というのを見つけたのですが導入方法がわかりません。
やり方教えてほしいです。
205
(1): 2020/04/20(月)20:50 ID:bEPCXYQk(1) AAS
>>204
Homebrewフォルダを自分のプロジェクトのAssetsに置く

折りたたみを使いたいスクリプトの一番上の部分に
using Pixeye.Unity;
を追加

あとは添付されてる
README.md
見ればわかるはず。
.mdファイルが開けなかったらブラウザにドラッグ&ドロップすれば見れる
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);
}

とにかく手探りで書いてみました。
実行したところ、やはり弾が生成された地点で止まってしまいます。
どこを直せばいいのでしょうか…
207
(1): タワー ◆j2ZL4YtpzY 2020/04/20(月)21:16 ID:IQn62GFy(1/2) AAS
>>206
xの値変わって無くないですか?
方向はStart()で決めてるんでその後のxの加算減算はUpdate()内で行えば動きませんか?
208: 2020/04/20(月)21:28 ID:vPtvjXeA(2/2) AAS
>>205
おかげさまで導入することができました 
ちなみに自分がひっかかってたのはダウンロードの仕方からわからなかったのですが
サイトの Clone or download → Download ZIP から落とせました。
たぶんダウンロード出来てたとしても導入でつまづいてたと思うので(英語わからない)
助かりました ありがとうございます!
209
(1): 2020/04/20(月)22:10 ID:zd2flDEV(6/7) AAS
>>207
Startでxに代入している-0.5fや0.5fは方向を決めるだけのものなんですか?
であればUpdate内にxと書いただけでは動かないのは納得です…
210: 2020/04/20(月)22:15 ID:j+CwVrdp(1/2) AAS
>>206
これでどうだ

GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;

void Start()
{

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

void Update()
{
left = Renderer.flipX;

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

transform.Translate(x, 0, 0);
}
}
211
(1): 2020/04/20(月)22:26 ID:j+CwVrdp(2/2) AAS
発射後には方向動かしたくないのか 失礼
212
(2): 2020/04/20(月)22:30 ID:zd2flDEV(7/7) AAS
>>211
そうなんです!
これだとプレイヤーの向きを変えるたびに弾の方向も変わってしまうんです…
わざわざ書いてくださってありがとうございます
213
(1): 2020/04/20(月)22:47 ID:7TeDGIGu(5/5) AAS
>>212
206で動かない?
そもそもこのスクリプトは弾についてますか?
あとxの値が小さすぎるかもしれませんので、おおきくするとか。
214
(2): タワー ◆j2ZL4YtpzY 2020/04/20(月)23:01 ID:IQn62GFy(2/2) AAS
>>209
あ、分かった二ヶ所です

まずStart()にある
if(left == true)

をUpdate()へ移動

んで加算減算ですが
x = -0.5f
ではなく
x -= 0.5fとx += 0.5f
これならどうだっ!?
215
(1): 2020/04/21(火)00:16 ID:VK5HUOlH(1) AAS
>>206
GetComponentする前にRendererを参照してるからぬるぽ出てるんじゃないの?
Renderer=の部分をleft=の上に移動してみては
216
(2): 2020/04/21(火)01:34 ID:TxUS3yyD(1) AAS
>>212
画像リンク

こういう感じ?弾はプレハブをinstantiateで生成してるでいいのか?

GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;

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

}

void Update()
{
if (left == true)
{
x = -0.05f;
}
else
{
x = 0.05f;
}
transform.Translate(x, 0, 0);
}
217
(1): 2020/04/21(火)02:35 ID:eGonr+6D(1/3) AAS
>>213
このスクリプトは弾についてるやつです
これだと生成された場所で弾が止まってしまいます…
transform.Translate(0.5f,0,0)でいい感じだったので数値はこれでいいはずなんですが…。
218: 2020/04/21(火)02:39 ID:eGonr+6D(2/3) AAS
>>214
>>216
お二方ともご丁寧にありがとうございます。
そうですね。弾はInstntiateで生成してます。
試してみます。

>>215
謎エラーが出てたのはこれが原因かもしれません…
完全に見落としてました、ありがとうございます
219: 2020/04/21(火)07:56 ID:lxHdAL0J(1) AAS
>>217
ほな違うかー。それやと>>206で動くはずやもんな。
なんやろなー、一度update内をtranslate(1,0,0)だけにしてまず動くか試してみぃ。
220
(1): 2020/04/21(火)10:03 ID:eGonr+6D(3/3) AAS
>>216
この方のスクリプトで試したところ、理想通りの動きをしてくれるようになりました
>>214さんのスクリプトも試してみようと思います

数日にわたり本当にありがとうございました!
しっかり勉強します…!
221: タワー ◆j2ZL4YtpzY 2020/04/21(火)10:10 ID:NfJnlsa5(1) AAS
>>220
あ〜ごめんなさいtranslateですね、少し勘違いしてたのでお気になさらず
私もまだまだ勉強中なのでお互い頑張りましょう!
222: 2020/04/21(火)11:36 ID:K2oy6SXi(1) AAS
androidでrun and buildしようとしてgradleでエラーが出る

gradleのアップデートしようにもexportの仕方がわかんねえ…
1-
あと 780 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.084s