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

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

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

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

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Unity

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

Q&A

解決済

1回答

1807閲覧

Unity リストの中身をランダムに再配置

st1890

総合スコア3

C#

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

リストボックス

ユーザーがリストから1つ以上のアイテムを選択できるようにするGUI要素です。

Unity

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

0グッド

0クリップ

投稿2020/07/19 08:04

リストの中身をランダムに再配置する処理を実装したいです。
他の方のコードを参考にしてみましたがGuidのところでエラーが発生してしまいます
対処方法をご教示いただきたいです。

参考サイト
https://www.wojtekmt.com/entry/2019/09/25/190000

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

The name 'Guid' does not exist in the current context
エラーメッセージ

### 該当のソースコード C# ソースコード public RectTransform CardCreateParent; void Start() { Card card = Instantiate<Card>(this.CardPrefab, this.CardCreateParent); //カード情報リスト List<CardData> cardDataList = new List<CardData>(); //表示するカードの画像情報のリスト List<Sprite> imgList = new List<Sprite>(); imgList.Add(Resources.Load<Sprite>("Image/card_img_000")); imgList.Add(Resources.Load<Sprite>("Image/card_img_001")); imgList.Add(Resources.Load<Sprite>("Image/card_img_002")); //forを回す回数を取得する int loopCnt = imgList.Count; for(int i = 0; i < loopCnt; i++){ //カード情報を生成する CardData carddata = new CardData (i,imgList[i]); cardDataList.Add(carddata); } //生成したカードリスト二つ分のリストを作成する List<CardData> SumCardDataList = new List<CardData>(); SumCardDataList.AddRange(cardDataList); SumCardDataList.AddRange(cardDataList); //リストの中身をランダムに再配置する List<CardData> randomCardDataList = SumCardDataList.OrderBy(a=>Guid.NewGuid()).ToList(); //エラー発生箇所 }

試したこと

エラーメッセージを検索し、他の方の対処法を調べてみましたが
対処法が分かりませんでした。

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

Unity 2019.2.9f1

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

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

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

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

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

bboydaisuke

2020/07/19 08:05

エラーが何行目で出たのか、そしてそれは貼ってあるコードのどこなのかをわかるように教えてください。
bboydaisuke

2020/07/19 08:07

失礼しました。コードの中に書いてありましたね。
guest

回答1

0

ベストアンサー

エラー発生個所はここで、

List<CardData> randomCardDataList = SumCardDataList.OrderBy(a=>Guid.NewGuid()).ToList(); //エラー発生箇所

エラーはこれですね。

The name 'Guid' does not exist in the current context

Guid のフルネームは System.Guid なのですが、それがコンピュータ(コンパイラ)にわからないのでエラーになってます。

ということで先頭に using System; と追加すればエラーは出なくなるでしょう。

参照しているブログの方ではそれが抜けてますね。ひょっとしたらもっと前の記事で説明があるのかもしれません。
Visual Studio 2017 とか 2019 ではこういうエラーは「ひょっとしてこういう風に直せばいいんじゃないですか?」と教えてくれます。よく見るようにしましょう。

投稿2020/07/19 08:09

bboydaisuke

総合スコア5270

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

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

st1890

2020/07/19 08:19

回答ありがとうございます! 使用しているエディタはvisual studio codeでした。 ヒントが出ているかは分かりませんでしたが、他のエディタにそういった機能があるならば、エディタの変更も検討してみようと思います。
bboydaisuke

2020/07/19 08:24 編集

Visual Studio Code は以下のような場合には勧められます。 1. とても詳しい 2. コンピュータのスペックが貧弱 3. Mac である 4. Mac と Windows でまったく同じ環境を作りたい そうではない場合は Visual Studio を使っておいた方が無難だと私は思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問