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

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

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

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

Q&A

1回答

6931閲覧

Unityでキャラクターオブジェクトを特定の場所に生成

cdecda

総合スコア11

Unity

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

0グッド

0クリップ

投稿2015/11/27 04:51

編集2022/01/12 10:55

Unityで場所を決めてその場所にキャラクターオブジェクトを生成するものを作っています。
建物のオブジェクトの前にPlaneという平面オブジェクトを置き建物オブジェクト配下にしています。その平面の端と端に小さな平面オブジェクトを置いています(Planeの配下)

Planeオブジェクトはキャラクターが生成される場所にしています。
端のオブジェクトはキャラクターが生成されたときにその小さな平面を巡回するよにするためです。
ですがうまく動きません。

###発生している問題・エラーメッセージ
error CS1502: The best overloaded method match for `UnityEngine.Vector3.Vector3(float, float, float)' has some invalid arguments

error CS1503: Argument #1' cannot convert UnityEngine.Vector3' expression to type `float'

error CS1502: The best overloaded method match for `UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)' has some invalid arguments

error CS1503: Argument #2' cannot convert object' expression to type `UnityEngine.Vector3'

error CS1502: The best overloaded method match for `UnityEngine.Vector3.Vector3(float, float, float)' has some invalid arguments

error CS1503: Argument #1' cannot convert UnityEngine.Vector3' expression to type `float'

error CS1502: The best overloaded method match for `UnityEngine.Object.Instantiate(UnityEngine.Object, UnityEngine.Vector3, UnityEngine.Quaternion)' has some invalid arguments

error CS1503: Argument #2' cannot convert object' expression to type `UnityEngine.Vector3'

###ソースコード

public class py : MonoBehaviour { private bool isTriggeredcp1; private bool isTriggeredpy; Transform position; Object enemy; Object enemy2; Transform plane; Transform sMarker; Transform eMarker; GameObject Target; void OnTriggerStay (Collider Other){ if (Other.tag == "E") { isTriggeredpy = true; isTriggeredcp1 = true; Transform sMarker = GetComponent<enemyjunkai>().startMarker; Transform eMarker = GetComponent<enemyjunkai> ().endMarker; plane = Other.transform.gameObject; position = Other.transform.position; } } // Use this for initialization void Start () { foreach (Transform child in transform) { GameObject gameObject = child.gameObject; if (gameObject.tag == "collider") { gameObject.renderer.enabled = false; } } } // Update is called once per frame void Update () { if (!isTriggeredcp1) { p.transform.Find("smallflat") = sMarker; p.transform.Find("smalflat1") = eMarker; } if (!isTriggeredpy) { Instantiate(e2,new Vector3(position,position,position),Quaternion.identity); Instantiate(e,new Vector3(position,positon,position,),Quaternion.identity); } } }

よろしくおねがいします。

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

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

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

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

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

guest

回答1

0

変数宣言の部分をもう少し見やすく書きましょう。
型が違うよエラーが主なので扱っている型が正しいか確認しましょう。
英語が読めなくてもweb翻訳などを使えばなんとなく意味はわかると思います。

追記

C#

1public class py : MonoBehaviour { 2 3 private bool isTriggeredcp1; 4 private bool isTriggeredpy; 5 6 // 基本的には1行1処理 7 // こういう省略の仕方は後で見たときわからなくなるのでもっとわかりやすい名前に 8 Object e; 9 Object e2; 10 Transform position; 11 Transform p; 12 Transform sMarker; 13 Transform eMarker; 14 GameObject Target; 15 16 17 void OnTriggerStay (Collider Other){ 18 if (Other.tag == "E") { 19 // 基本的には1行1処理 20 isTriggeredpy = true; 21 isTriggeredcp1 = true; 22 23 // p は Transform なのに GameObject を代入 24 p = Other.transform.gameObject; 25 position = Other.transform.position; 26 } 27 } 28 29 30 // Use this for initialization 31 void Start () { 32 // cp って見て何かすぐにわかりますか? 33 Transform sMarker = GetComponent<cp1>().startMarker; 34 Transform eMarker = GetComponent<cp1> ().endMarker; 35 36 foreach (Transform child in transform) 37 { 38 GameObject gameObject = child.gameObject; 39 if (gameObject.tag == "collider") { 40 gameObject.renderer.enabled = false; 41 } 42 } 43 } 44 45 // Update is called once per frame 46 void Update () { 47 48 if (!isTriggeredcp1) { 49 // sg って見て何かすぐにわかりますか? 50 p.transform.Find("sg") = sMarker; 51 p.transform.Find("sg1") = eMarker; 52 } 53 54 if (!isTriggeredpy) { 55 Instantiate(e2,Vector3(position),Quaternion.identity); 56 Instantiate(e,Vector3(position),Quaternion.identity); 57 } 58 } 59}

投稿2015/11/27 06:28

編集2015/11/27 08:05
tanamochi

総合スコア83

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

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

cdecda

2015/11/27 06:44

回答ありがとうございます。 変数の部分はどのようにしたらよいでしょうか。 型が正しいか確認してみます。
cdecda

2015/11/27 09:48

追記ありがとうございます。 具体的な回答ありがとうございます。 コードを編集します。
cdecda

2015/11/27 10:10

p = Other.transform.gameObject; のことですが、これはプレイヤーが建物前の平面Planeに接触したときに触れたPlaneの場所にキャラクターオブジェクトを生成したいのですが、この場合どのようにしたよいでしょうか。
tanamochi

2015/11/27 10:27

p を Transform として使えばいいのではないでしょうか? p = Other.transform; p.Find("sg") = sMarker; Transform って Find ありましたっけ? なければ p.gameObject.Find("sg") = sMarker;
cdecda

2015/11/30 06:31 編集

ありがとうございます。p = Other.transform.gameObject; のエラーの表示はされなくなりました。 質問したときのコードは動くのでしょうか。 残っているエラーメッセージをすべて対応したとして、コード全体で見たときに、質問したときのコードは間違っていないのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問