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

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

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

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

Unity

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

Q&A

解決済

1回答

16664閲覧

Unityでクラッシュが発生してしまい作成が進みません

sai26

総合スコア13

C#

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

Unity

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

0グッド

0クリップ

投稿2019/02/09 06:08

編集2019/02/10 10:30

前提・実現したいこと

今Unityを使って3Dゲームを作成しているのですが、C#のスクリプトを改造してUnity内でPlayをする時にクラッシュが発生して「we will now try to find a fix for the crash 」の文が出てきます。対処法や発生原因がわかる方がいらっしゃれば教えて頂きたいです。初質問なので所々不手際があるかもしれませんがお許しを……

発生している問題・エラーメッセージ

we will now try to find a fix for the crash

該当のソースコード

C#

1 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5using UnityEngine.UI; 6using UnityEngine.SceneManagement; 7 8public class Timecount : MonoBehaviour { 9 10 private int minute; 11 private float seconds; 12 //前のUpdate時の秒数 13 private float oldSeconds; 14 //タイマー表示テキスト 15 private Text timerText; 16 17 // Use this for initialization 18 void Start () { 19 minute = 1; 20 seconds = 0; 21 oldSeconds = 0; 22 timerText = this.GetComponent<Text>();//Textコンポーネントを取得 23 24} 25 26// Update is called once per frame 27void Update () { 28 seconds -= Time.deltaTime; 29 if (seconds <= 0f) 30 { 31 minute--; 32 seconds = seconds +60; 33 } 34 35 //値が変わった時のみテキストUIを更新 36 if ((int)seconds != (int)oldSeconds) 37 { 38 timerText.text=minute.ToString("00")+":"+((int)seconds).ToString("00"); 39 } 40 oldSeconds = seconds; 41 if (minute == 0 && seconds >= 0) 42 { 43 SceneManager.LoadScene("Result"); 44 } 45 46} 47 48} 49

試したこと

Unityの再起動
PC本体の再起動

補足情報(FW/ツールのバージョンなど)

Play以外は全て問題なく動きます。
メモリ、CPUも35%程なので問題無しと思われます。

Unityはversion.2018.2.10です。

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

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

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

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

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

fiveHundred

2019/02/09 07:50

これだけの情報で原因を探るのは無理です。 以下の内容も記載してください。 - 「C#のスクリプトを改造して」とあるが、具体的に何をどう改造したのか - Consoleウィンドウにエラーが出ている場合、その内容 質問する際は以下の内容も確認するとよろしいと思います。 https://teratail.com/help/question-tips
sai26

2019/02/10 10:29

すいません。返信が遅くなってしまいました。 具体的にはUnity内で時間をカウントするスクリプトを作っていて、最初はカウントが1つずつ上がるように作っていたのですが、途中でマイナスカウントするように作り替えることになったので改造をしていた所クラッシュするようになりました。 ソースコードの方にスクリプトを貼らせていただきました。
guest

回答1

0

ベストアンサー

原因の絞り込みが必要です。以下の手順で調べてみてください。
(現行プロジェクトは必ずバックアップを取ってから進めてください)

1.プロジェクトを新規作成して何も変更せずそのままPlay押す
→クラッシュしたらUnityのバグだと思われるのでUnity再インストールを試す。

↓正常に動作した場合

2.現行プロジェクトで新規シーンを作成、そのシーンでPlay押す
→クラッシュしたらプロジェクト内にエディタスクリプト(Editorというフォルダに入ったスクリプト)が無いか確認。あったら削除した上で再度Playする。その他外部ライブラリを入れている場合はそれも消す。
→これらを削除した状態で正常動作する場合、そこが原因の可能性が高いので個別に対策を考える(そのスクリプトやライブラリを使わない、自分で直せそうなら直す等)。

↓正常に動作した場合

3.現行プロジェクトの問題のシーン内のオブジェクトに付いているスクリプトを全部オフにしてPlay押す
→クラッシュしたら今度はシーン上のオブジェクトを1つ消してPlay、1つ消してPlayとクラッシュしなくなるまで繰り返す。最後に消したオブジェクトに付いているスクリプトが原因の可能性が高いので内部をチェックする。

↓正常に動作した場合

4.現行プロジェクトの問題のシーン内のオブジェクトに付いているスクリプトを1つずつオンにしてPlay、オンにしてPlayを繰り返す
→どこかしらでクラッシュすると思うので、最後にオンにしたスクリプトが原因の可能性が高いので内部をチェック。

投稿2019/02/10 05:09

sakura_hana

総合スコア11425

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問