質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

2159閲覧

敵のノックバック、斬り上げ処理の作り方について質問

freebee

総合スコア11

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

1グッド

3クリップ

投稿2019/03/05 16:18

プレイヤーの攻撃が当たったらランダムでノックバック、
プレイヤーの特定の攻撃(斬り上げ)すると敵が上空へと舞い上がると言った設定(例:ベヨネッタのゲームのようなシステム)
をしたいのですが、どういったスクリプトをあてればいいのかわかりません。

現在下記のように、素手(手足)に攻撃時に表示される当たり判定をつけることができたので、これを使っての処理を望んでいます。しかし内容は未熟だと思うので、助言等ありましたらお聞かせください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GetAnimationInfo : MonoBehaviour
{

public GameObject left_hit; public GameObject right_hit; public GameObject left_leg_hit; public GameObject right_leg_hit; private AnimatorStateInfo stateInfo; private Animator anim; // Use this for initialization void Start() { anim = GetComponent<Animator>(); } // Update is called once per frame void Update() { stateInfo = anim.GetCurrentAnimatorStateInfo(0); if (Input.GetKeyDown("x") || Input.GetButtonDown("Fire1") || Input.GetButtonDown("Fire2"))//追記部分 { left_hit.SetActive(true); right_hit.SetActive(true); left_leg_hit.SetActive(true); right_leg_hit.SetActive(true); } else { left_hit.SetActive(false); right_hit.SetActive(false); left_leg_hit.SetActive(false); right_leg_hit.SetActive(false); } }

}

プレイ時はゲームコントローラーを使用しています。
unityのバージョンは2月にアップデートしたばかりです。
恥ずかしながら私はスクリプトの知識や経験がほぼなく、頑張っているのですがいつもエラーが出てしまいます。
できれば完成したスクリプトなどを拝見させていただければ今後の励みになります。
初心者同然なのですが、宜しくお願いいたします。

bochan2👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2019/03/05 23:17

https://teratail.com/help/question-tips まずはこちらをご覧の上、問題点・理想の動作・試したこと等の具体的な表記をお願いします。 エラーはエラー文をそのままググれば一般的なものなら大体情報が出ます。(エラー文の見方とよくあるエラー→ https://tech.pjin.jp/blog/2017/05/29/unity_error_null-reference-exception/ ) 挙動自体は「衝突」と「オブジェクトの移動」が分かれば実現可能だと思いますが、オブジェクトの移動方法には色々な方法があります。こちらも「unity アニメーション 衝突」等で検索すれば色々情報が出ますのでまずは自分で調べてみてください。
freebee

2019/03/06 04:46 編集

エラーは調べて解決してみています。 斬り上げ、空中に一定距離持ち上がるなどはなく調べてもよく解らないので此方でもっと具体的にお聞きしたかたかったのです。 以前は完成したスクリプトを頂き、その後とても助かりました。 お名前を出していいのか解らないので書きませんが、具体的なコードも頂きました。 出来ればスクリプトなども御見せいただきたいので宜しくお願いします。
sakura_hana

2019/03/06 12:41

既にベストアンサー付いていますが一応。 「完成コードが欲しい」というのは質問ではなく作業依頼になります。私も文章として説明するよりコードを見せた方が早い場合はそうしますが、本来はteratailでは非推奨の行為です。参照→https://teratail.com/help/avoid-asking また、「コードの完成形」は「詳細な要件・仕様」ありきで変わります。前提条件によっては全く参考にならず、質問者・回答者双方の時間の浪費となりかねません。質問内容の充実はそれを避ける目的もありますので、次回以降はご一考頂ければ幸いです。
guest

回答2

0

ベストアンサー

質問頂きありがとうございます。

敵側にこのスクリプトをつけて、当たり判定があったらGetComponentなりしてKnocked()を呼んで下さい。

敵キャラクターの接地判定がおかしい場合はCharacterControllerの使用を止めてRigidBodyにしましょう。

C#

1public class EnemyEffect:MonoBehavior{ 2 CharacterController cc; 3 float vy=0; 4 bool isHit; 5 void Start(){ 6 cc=GetComponent<CharacterController>(); 7 8 } 9 void FixedUpdate(){ 10 if(isHit){ 11 vy-=Time.deltaTime*9.8f; 12 //他で重力を適応している場合 13 if(vy>0){ 14 cc.Move(0,vy,0); 15 } 16 //他で重力の処理をしてない場合 17 //cc.Move(0,vy,0); 18 if(cc.isGrounded&&vy<0){//vy<0は必要に応じて消して下さい 19 isHit=false; 20 } 21 } 22 } 23 public void Knocked(){ 24 isHit=true; 25 vy=9.8f; 26 } 27 28}

投稿2019/03/06 10:27

bochan2

総合スコア2050

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

freebee

2019/03/06 13:07 編集

ありがとうございます! 甘えた質問の仕方で申し訳ないです。 でも頂いたコードを使用させて頂きながら学んでいきたいと思います。 動作も問題なく動きました。助かりました(ぺこり)
guest

0

恥ずかしながら私はスクリプトの知識や経験がほぼなく、頑張っているのですがいつもエラーが出てしまいます

遠回りになりますが、Unityチュートリアルをひたすらやってからの方が、いいのでは?と思いました!

投稿2019/03/06 05:02

編集2019/03/06 05:03
MasujimaRyohei

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問