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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
436
(2): 2018/08/17(金)18:04 ID:/P5tUkj4(1) AAS
剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて
437: 弟子 ◆rZPPjYuxmQ 2018/08/17(金)20:11 ID:ni8AyJER(1) AAS
出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?
438: 2018/08/17(金)21:06 ID:jjg/SVIP(1/2) AAS
コライダーって出したり引っ込めたりするもんなのか?
439: 2018/08/17(金)21:13 ID:53TbFepx(1) AAS
コライダを消せばいいやん。(false)
440
(1): 436 2018/08/17(金)22:51 ID:Cl208u38(1/2) AAS
プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour {

void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);

Debug.Log("hit Object");

}

}
441
(2): 436 2018/08/17(金)22:52 ID:Cl208u38(2/2) AAS
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます

public GameObject AtariHantei;
void Update()
{

//アタック

if (Input.GetMouseButtonDown(1))
{

this.animator.SetTrigger("AttackTrigger"); //アニメ再生

audioSource.PlayOneShot(AttackSE, volumeSE); //AttackSE

AtariHantei.SetActive(true); //コライダon

}
442: 2018/08/17(金)23:27 ID:jjg/SVIP(2/2) AAS
詳しくはわからんけど根本的にやり方間違ってそうな気がするな
443
(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:11 ID:cxAelueQ(1/2) AAS
>>440,441
とりあえず、そのスクリプトを生かしてコード書いてみました
現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします
public class AttackController : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
Debug.Log("hit Object");
transform.parent.SendMessage("SetOffAtariHantei");
}
}
で、プレイヤーには
void SetOffAtariHantei()
{
AtariHantei.SetActive(false); //コライダOff
}
を追加します
プレイヤーとあたり判定は親子関係にしました
画像リンク

画像リンク

これで敵を2対置いて、ミギクリした場合としない場合で判定がちゃんとされます
画像リンク

444
(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:14 ID:cxAelueQ(2/2) AAS
あぁテストする際、
void Start()
{
SetOffAtariHantei();
}
に入れて最初は通過、その後クリックで当たるとした方が分かりやすかったかもしれません><
445
(1): 2018/08/18(土)03:49 ID:FXerNp9n(1/2) AAS
なんで出っぱなしになって困ってる判定を敵にあたったら消すように改修すんの?
剣を振るアニメーション終わった後にとことこ敵の前に歩いていったら攻撃があたんの?
亜空間攻撃とはなかなか見ないゲームだな

どんなゲームかわからんけど普通は一定時間後にオフにすればいい
SetActive falseで消えることはわかってるだろうから一定時間後にその処理を呼ぶようにすればいい
一定時間後に処理を走らせる方法はいろいろあるからググって
わかんなかったらまた聞いて
446: 2018/08/18(土)03:53 ID:FXerNp9n(2/2) AAS
>>444
知らなければ答えなければいい
とか言って他人を煽るんだったら正しく答えてくれません?
なんで初心者が迷うような回答をいつもするんですか?
447
(1): 2018/08/18(土)11:18 ID:CpHT33yN(1) AAS
>>441
アニメーションイベントを使うといいよ
具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ
現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う

詳しくはウェブで!!
外部リンク:gametukurikata.com
448
(1): 2018/08/18(土)11:49 ID:42eZyM7+(1/2) AAS
<<442
>>443
ありがとうございます
攻撃→コライダ出る→敵に当たる→コライダ消えるって感じなので、攻撃を空振りしたあとに
敵に当たるまでコライダ出っぱなしになるんだけど、これはどうすればいいの?

そもそもこの攻撃の当たり判定の仕方は根本的に間違ってるの?入門本三冊持ってるんだけど
どれにも攻撃の当たり判定は載ってなかったからネット検索してやってみたんだけども
アニメーションイベント使ってやった方がいいのだろうか?ちなみに本にはアニメーションイベントのやり方は載ってなくて
ググってみたけどよく分からなかった
449
(2): 2018/08/18(土)12:18 ID:42eZyM7+(2/2) AAS
>>445
>>447

ありがとうございます、一定期間後の処理で出来るようになりました。
アニメーションイベントもわからないので調べて出来るようになろうと思う

void AtariKesu()
{
AtariHantei.SetActive(false);
}

void Update()
{
//アタック

if (Input.GetMouseButtonDown(1))
{
AtariHantei.SetActive(true); //コライダon
Invoke("AtariKesu", 0.3f);

}
450: 2018/08/18(土)14:52 ID:X+sFoNwa(1) AAS
>>448
間違い。
?コライダー出す→コライダー消す
?コライダーに当たる、

??の判定は別で処理すべき。
?で当たった判定を?に渡して、途中で消す作りにすべき。
451
(1): 2018/08/18(土)17:20 ID:D8/ukjCM(1) AAS
raycastのrayって判定がけっこう曖昧になったりすることありますか?
マウスが乗ってるとこのterrainの座標を取得するのは問題なく出来てるんですが、xz座標を指定して高い位置から真下に飛ばしてヒットしたy座標を取得しようとすると取得できたり出来なかったり違った値が入ったりするんですが
少し感じたのはinfinityにするとしても発射位置を少し高くすると反応しなくなったりしてます
452
(1): 2018/08/18(土)19:25 ID:An0BPv4U(1) AAS
>>449
アニメーションEventは一回わかると結構簡単だ
public void AtariKesu()のスクリプトをつける
アニメーションのEventにAtariKesuを入れるとそのコマに来たら呼び出してくれる
453: 2018/08/18(土)23:30 ID:47mEmEPe(1) AAS
>>451
曖昧になったと感じたことはない。
私は、な。
454: 2018/08/18(土)23:34 ID:CVdxGkvB(1) AAS
お前の話は聞いてない
455
(1): 2018/08/19(日)00:14 ID:9mjqz3Tm(1) AAS
>>449
はじめて自分でアニメーションまでつけてやってみた
結構めんどくさかった
剣にコライダーつけてisTrigerをオン・オフにするようにした
コライダーのisTrigerのチェック入れておく(オフの状態)
public Collider2D coll2;
void Start () {coll2=GetComponent<Collider2D>();}
public void collOn(){coll2.isTrigger=true;}
public void colOff(){coll2.isTrigger=false;}
void OnCollisionEnter2D(Collision2D col) {Destroy(col.gameObject);}
あとは剣のanimationで振り始めにEventをつけてcolOnを選んで
振り終わりにcolOffを選ぶ
456: 2018/08/19(日)00:41 ID:gr5beU/F(1) AAS
>>452
>>455
ありがとうございます
自分もそれで試してみようと思う
457
(2): 2018/08/21(火)01:36 ID:ypI3wEdL(1) AAS
上達するにはチュートリアルやれとしか言われないのですが、
あの数をやり終えてる人はなかなかいないと思います。
興味あるチュートリアルをやっているのか、好きなゲームを作って学んでいるのか、
皆さんはどうやって上達、脱初心者をしたのですか。
458: 2018/08/21(火)01:47 ID:en2r1zRw(1) AAS
聞いたところで何になる?
とにかく作る事。
作りたいものがあれば、それに必要なアルゴリズム、ロジックを構築する、その為にそこをしらべる。
これの繰り返し。
459: 弟子 ◆rZPPjYuxmQ 2018/08/21(火)01:55 ID:RFRywrT+(1) AAS
>>457
初心者スレでそれ聴かれても
自分はずっと初心者でいいかなと思ってますよ
460: 2018/08/21(火)03:04 ID:fxmPVXdZ(1) AAS
ええ…
461: 2018/08/21(火)15:11 ID:8qBPp1CD(1) AAS
>>457
チュートリアルはroll a ballしかやらなかったな
その後は作りたいゲームの案から比較的簡単なやつを選んで作っていった

上達の秘訣はググり力だと思うよ
リファレンスを眺めて思いを馳せるのもいいかもしれない
462
(1): 2018/08/24(金)11:55 ID:Grbxnj3m(1/3) AAS
敵がプレイヤーに向かってくるスクリプトはできたんだけど敵の進行方向にspriteを左右に反転させるコードがわかりません
分かる方いたらよろしくお願いします。

public class Chase : MonoBehaviour
{

public GameObject Player;
public float Speed;

void Update()
{

this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);

}

}
463: 2018/08/24(金)12:10 ID:4yphetVh(1/4) AAS
void Update()
{
Vector3 prePosition = transform.position;

this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);

if(transform.position.x - prePosition.x >= 0){
transform.localScale.x = 1;
}else{
transform.localScale.x = -1;
}
}

こんな感じでどう?
2Dやったことないけどねw
464: 2018/08/24(金)12:24 ID:4yphetVh(2/4) AAS
すまん横着した
こっちで

void Update()
{
Vector3 prePosition = transform.position;

this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);

Vector3 scale = transform.localScale;

if(transform.position.x - prePosition.x >= 0){
scall.x = 1;
}else{
scall.x = -1;
}

transform.localScale = scale;
}
465
(1): 2018/08/24(金)12:25 ID:4yphetVh(3/4) AAS
スペルミスってるw
もうだめだw
1-
あと 537 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.017s