[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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の仕方がわかんねえ…
223(1): 2020/04/21(火)22:53 ID:csf8LLL0(1) AAS
使い方がイマイチわからないところがあるので質問させてください
AオブジェクトにスクリプトAを接続
スクリプトAでパブリックGameObject Bを宣言
すると
AオブジェクトのインスペクタにGameObject Bの項目が追加されますが、
スクリプトAのインスペクタにもGameObject Bの項目が追加されています。
AオブジェクトのインスペクタのGameObject Bには他のオブジェクトをドラッグドロップで
接続できますが、
スクリプトAのインスペクタのGameObject Bには同じように接続できません。
None(Game Object)となっています。
特に問題なく想定したとおり動いてるのでいいのですがちょっとだけ気になります。
スクリプトAのインスペクタにはどんな意味があるのでしょうか?
224(1): 2020/04/21(火)23:37 ID:UQ97M8GL(1) AAS
>>223
スクリプトAのインスペクタ
というのは、プロジェクトタブ内でスクリプトを選択したときに表示されるもののことでしょうか?
であれば、設定できるのはプロジェクト内にあるゲームオブジェクトだけです。
プロジェクト内にあるプレハブを初期値として持たせておきたい場合はそこで設定するといいと思います。
225(1): 2020/04/22(水)01:06 ID:KbfCVKCs(1/4) AAS
>>224
そうです Projectタブ内のスクリプト選択時に表示されるものです
おっしゃるとおりAssets内のプレファブからならドラッグドロップで登録できました
でもこれって
ゲームオブジェクト選択時に表示されるインスペクタのほうからでもプレファブ登録ってできますよね?
初期値に違いが出るんでしょうか?
226(1): 2020/04/22(水)01:27 ID:sLe2iYSZ(1/3) AAS
スクリプトをアタッチした時点での初期値、という意味です。
227: 2020/04/22(水)01:43 ID:KbfCVKCs(2/4) AAS
>>226
すみません 理解力が足りなくてよくわかりません・・・
どういう風な使い方ができるか具体例とかあれば教えていただけないでしょうか?
228(1): 2020/04/22(水)02:29 ID:sLe2iYSZ(2/3) AAS
ただ単純に手間を省ける場合があるってだけです。
例えばプレハブに8割の確率で同じものを使う、という場合で、
100回スクリプトをアタッチしたとします。
初期値が空なら、100回プレハブを設定しなければなりません。
初期値に80回使うプレハブがすでに設定済みなら、
設定するのは20回ですみます。
229: 2020/04/22(水)07:29 ID:idLW19fL(1) AAS
やばいずっと何言ってるかわかんねえ
230(3): 2020/04/22(水)11:29 ID:VQM8R+FC(1/3) AAS
プレハブについての質問です。
すでに存在するオブジェクトに子としてプレハブを複製しようとしたときの座標がうまく設定できません。
スクリプトではこんな感じ記載しています
------------
ParentObject = GameObject.Find("ParentCanvas"); //すでに用意しているキャンパス
var parent = ParentObject.transform;
// プレハブをGameObject型で取得
GameObject obj = (GameObject)Resources.Load("Prefab");
// プレハブを元に、インスタンスを生成、
Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
//ローカルポジションの設定
obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f);
----------
結果として子としてプレハブは複製できていますが、座標がローカルではなくワールド座標のほぼ原点に生成されてしまいます。
親のローカル座標に設定するにはどうしたらよいでしょうか?
InstantiateのVectorをローカル座標として設定したい状態です。
上下前次1-新書関写板覧索設栞歴
あと 772 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.023s