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

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

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

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

Unity

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

Q&A

解決済

2回答

905閲覧

string型を他のクラスにしたいです (C# Unity)

Kiriyama

総合スコア3

C#

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

Unity

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

0グッド

0クリップ

投稿2023/01/05 08:10

編集2023/01/05 08:43

int型をstring型にするには.ToString()がありますが、例えばstring型をVector3型にするにはどのようにすればいいかわかりません。

具体的にやりたいこと

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class sample : MonoBehaviour 6{ 7 Vector3 pos1; 8 9 void Start() 10 { 11 /* 12 ここに「"pos1"」「"pos" + 1」のようなstring型を作り、 13 そのstring型であらわされたものをVector3型に型変換し、 14 「new Vector3(0, 0, 0)」を代入したいです。 15 */ 16 } 17}

もちろんpos1 = new Vector3(0, 0, 0);とすれば代入できますが、
一度「pos1」をstring型の文字列に変換し、その文字列を改めてVector3型に変換する方法はないでしょうか。

最終的にやりたいこと

実際はpos1~pos10まで10個のVector3型変数があり、
イメージとしましては

C#

1for(int i = 1; i <=10; i ++) 2{ 3 "pos" + i = new Vector3(0, 0, 0); 4}

のようなことをしたいです。
pos1 = new Vector3(0, 0, 0);
pos2 = new Vector3(0, 0, 0);
...
と10回やってもいいのですが、これが変数100個だと手に負えなくなってしまうため、解決策をご教示いただきたいです。

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

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

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

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

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

YAmaGNZ

2023/01/05 08:18

>string型をint型にするには.ToString()がありますが 逆です。int型をstring型にする場合にToStringを使用します。 前の質問もそうですが、最終的に何がしたいのかが分かりません。 何もわからないで過程の質問をするのではなく、最終的にこうしたいということを質問したほうがよろしいかと思います。
Kiriyama

2023/01/05 08:28

ToString()の件は私の勘違いでした。ご指摘いただきありがとうございます。 この返信が終わり次第訂正させていただきます。   最終的にどうしたいかについても併せて変更いたします。
退会済みユーザー

退会済みユーザー

2023/01/05 08:41

> string型をint型にするには.ToString()がありますが、 違います。Parse とか Convert になります。 > ここに「"pos1"」「"pos" + 1」のようなstring型を作り、そのstring型であらわされたものをVector3型に型変換し、「new Vector3(0, 0, 0)」を代入したいです。 意味不明ですが・・・ Vector3 というのは ↓ これのことですよね? Vector3 https://docs.unity3d.com/ja/2021.2/ScriptReference/Vector3.html 自力でコードを書いて望む型変換を行うクラス/メソッドなどを作ってはいかが? そもそも何がしたいのですか? XY 問題のような気がしますけど。 XY 問題とは、X という課題があって、Y という解決策を考えついて Y について質問したが(質問には X は書かないで)、Y は X の解決策とはなっておらず、回答者と質問者間で話がかみ合わず、一向に解決にならないということです。 X も書いてください。
Kiriyama

2023/01/05 08:49 編集

型変換を行うクラス/メソッドについてはそのような手法があると知らなかったので、何かしらやってみようと思います。 また、その他についてはおおかたYAmaGNZ様のご指摘と全く被った内容とお見受けしました。   質問している立場ではありますが、「変更します」と私が申し上げているのですから、編集を待っていただければ幸いです。 編集してもまだ足りないことがあれば編集後に改めてご指摘ください。
Zuishin

2023/01/05 09:55

前の質問で配列を使っているので、この質問が意味不明です。
退会済みユーザー

退会済みユーザー

2023/01/06 06:33 編集

> 質問している立場ではありますが、「変更します」と私が申し上げているのですから、編集を待っていただければ幸いです。 いや、依然として意味不明ですよ。X も書いてくださいと言ったのに書いてない。
退会済みユーザー

退会済みユーザー

2023/01/05 10:12

それから、回答が出ているのだから回答に対するフィードバックを返しましょう。役に立った/立たなかったぐらいは返せるのでは? 役に立たなかったならどこが期待する答えと違うかも書いてください。
guest

回答2

0

ベストアンサー

stringをVector3に変えるというのは
通常0,0,0みたいな文字列をVector3の値として変換するという話で、
あなたがやろうとしていることは
string型でコード中の変数名を保持して、その変数を操作するといった話です。

そしてこれは一般に推奨されません。
配列、リスト、辞書などコレクションを使えばたいていの場合で事足ります

投稿2023/01/05 08:49

ozwk

総合スコア13521

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

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

0

pos1 = new Vector3(0, 0, 0);
pos2 = new Vector3(0, 0, 0);
...
と10回やってもいいのですが、これが変数100個だと手に負えなくなってしまうため、解決策をご教示いただきたいです。

Vector3 の配列を使うか、List<Vector3> を使えばいいのでは?

投稿2023/01/05 08:48

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問