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

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

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

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

解決済

マリオのコインブロックの作り方。

rrr66
rrr66

総合スコア0

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。

1回答

0評価

0クリップ

19閲覧

投稿2019/09/21 10:54

編集2022/01/12 10:58

Unityでゲームを作っています。
マリオのはてなブロック的なもの(無限にコインが出るようにしたい)を作りたいのですがうまくいきません。

SetActiveを使って、キャラクターがジャンプしたときに**enemy1.SetActive(true)**にすることでコインを出現させることに成功したのですが、2枚目以降を出現させることができません。

1つ目のコインを出現させた後に、インスペクターのEnemy1のCoinオブジェクトが消失してしまうのを改善できれば解決できると思うのですがうまくいきません。

ブロックから無限にコインを出現させるにはどのようなスクリプトを作ればいいのでしょう?
もし少しでもわかる方がいましたら教えてください。(_ _)

 

コインのSetActiveをtrueにした後、2秒後にコインをDestroyするスクリプト

c3

using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameObjectDestroy : MonoBehaviour { public float time = 2; public GameObject gameObject; public GameObject enemy1; void Start() { enemy1.SetActive(true); Destroy(gameObject, time); } }

キャラクターをコントロールするスクリプト(長々とすいません。必要な情報は**public void Jump()**の部分だけだと思います。)

c#

using UnityEngine; using System.Collections; using System.Collections.Generic; public class Yuko_sum_humanoidController : MonoBehaviour { bool push = false; public Vector3 touchStartPos; public Vector3 touchEndPos; public string Direction; bool oneplay; const int MinLane = -2; const int MaxLane = 2; const float LaneWidth = 1.0f; const int DefaultLife = 3; const float StunDuration = 0.5f; public int coin = 0; CharacterController controller; Animator animator; Vector3 moveDirection = Vector3.zero; int targetLane; int life = DefaultLife; float recoverTime = 0.0f; public float gravity; public float speedZ; public float speedX; public float speedJump; public float accelerationZ; public AudioClip CoinGet; public GameObject enemy1; public int Coin { get { return this.coin; } set { this.coin = value; } } public bool IsStan() { return recoverTime > 0.0f || life <= 0; } void Start() { // 必要なコンポーネントを自動取得 controller = GetComponent<CharacterController>(); animator = GetComponent<Animator>(); } void Update() { if (Input.GetKeyDown("space")) Jump(); // 重力分の力を毎フレーム追加 moveDirection.y -= gravity * Time.deltaTime; // 移動後接地してたらY方向の速度はリセットする if (controller.isGrounded) moveDirection.y = 0; } /////////////////////////////////////////////////////////////////////////////////// public void Jump() { if (IsStan()) return; if (controller.isGrounded) { moveDirection.y = speedJump; AudioSource.PlayClipAtPoint(CoinGet, transform.position); coin++; enemy1.SetActive(true); } }

コインオブジェクト消失前
イメージ説明
コインオブジェクト消失後
イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

同じタグがついた質問を見る

C#

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

Unity

Unityは、ユニティテクノロジーが開発したゲームエンジンです。 主にモバイルやブラウザ向けのゲーム製作に利用されていましたが、3Dの重力付きゲームが簡単に作成できることから需要が増え、現在はマルチプラットフォームに対応しています。 言語はC言語/C++で書かれていますが、C#、JavaScript、Booで書かれたコードにも対応しています。