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

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

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

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

Q&A

0回答

423閲覧

C#Unity Paritcle Systemを使ったらPlayerが消える。

syuteru64

総合スコア16

C#

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

0グッド

1クリップ

投稿2018/08/01 08:51

現在Unity5.4.1で3Dのゲームを作っています。
今回の質問内容ですがユニティちゃんからBボタンが押されたら弾幕を表示し、それ以外は弾幕を非表示するというスクリプトを作成しています。
しかし、ゲームを起動するとユニティちゃんから初期状態で弾幕が出てきて、終了するとユニティちゃん(というよりPlayerオブジェクト)が消えてしまいます。```C#
弾幕の処理
using UnityEngine;
using System.Collections;

public class ShockwaveMove : MonoBehaviour
{
public GameObject effect;
//飛んでいく方向
private Vector3 direction;
//飛ばす力
[SerializeField]
private float power;
//Rigidbody
private Rigidbody rigid;//パーティクルシステム

private ParticleSystem particle; // Use this for initialization void Start () { rigid = GetComponent<Rigidbody>(); //自身の子要素からParticleSystemを取得 particle = GetComponentInChildren<ParticleSystem>(); } // Update is called once per frame void Update () { //パーティクルの再生が終わったら衝撃波を消す if (!particle.isPlaying) { Destroy(this.gameObject); } } //衝撃波の飛んでいく方向を設定 public void SetDirection(Vector3 direction) { this.direction = direction; } //衝撃波に力を加えて飛ばす void FixedUpdate() { rigid.AddForce(direction * power); } void OnTriggerEnter(Collider col) { //壁か敵にあたった場合 if (col.tag == "Block" || col.tag == "Enemy") { if (col.tag == "Enemy") { Destroy(effect, 0.5f); } Destroy(effect, 0.5f); } }

}

```C# 弾幕の生成 using UnityEngine; using System.Collections; public class ShockwaveTest : MonoBehaviour { [SerializeField] private GameObject shockwave; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.B)) { Debug.Log("00000"); // 衝撃波プレハブをインスタンス化 var obj = Instantiate(shockwave, transform.position + transform.forward, Quaternion.identity) as GameObject; // 衝撃波の飛んでいく方向を指定 obj.GetComponent<ShockwaveMove>().SetDirection(transform.forward); } } }

C#

1プレイヤーの処理

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class Player : MonoBehaviour
{
//プレイヤーの移動スピード
public float moveSpeed = 5f;
//プレイヤーの回転速度
public float rotationSpeed = 360f;

//CharacterControllerをcharacterControllerで宣言 CharacterController characterController; //Animatorをanimatorで宣言 Animator animator; public GameObject effectPrefab; public GameObject Dot; public int PlayerHP; private Slider slider; public float Dot1 = 0f; public float Dot2 = 0f; // Use this for initialization void Start () { //characterControllerという型にCharacterControllerの値をコピーしている。 characterController = GetComponent<CharacterController>(); animator = GetComponentInChildren<Animator>();

/* slider = GameObject.Find("PlayerHPAlider").GetComponent<Slider>();
slider.maxValue = PlayerHP;
slider.value = PlayerHP;*/
}

// Update is called once per frame void Update() { //animatorのanimという型で作成 Animator anim = GetComponent<Animator>(); //Vector3に新しくVector3を作りGetAxis(X軸にHorizontal、Y軸に0、Z軸にVerticalを代入) Vector3 direction = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); //ベクトルが0.01F以上なら if (direction.sqrMagnitude > 0.01f) { //Vector3のforwardにVector3.Slerp(ゲームオブジェクトが向いている方向、方角、キャラクターのスピード×今フレームと全フレーム÷二つの方向の差分) Vector3 forward = Vector3.Slerp(transform.forward, direction, rotationSpeed * Time.deltaTime / Vector3.Angle(transform.forward, direction)); //描画 transform.LookAt(transform.position + forward); } //characterController内のMoveに(direction * moveSpeed * Time.deltaTime)を代入 characterController.Move(direction * moveSpeed * Time.deltaTime); //アニメーション処理 }

}
となります。
Paritcle Systemの設定はこうなっています。
イメージ説明イメージ説明
ご回答よろしくお願いします。

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

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

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

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

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

y_waiwai

2018/08/01 13:37

ソースコードがぐちゃぐちゃです。編集ボタン、<code>ボタンを押して、'''の枠の中にコードをコピーしてください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問