kuujooo-git
@kuujooo-git

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

二点間の距離

二点の距離をVector3.Distanceで求めようとしたところ、「必須パラメーターに対応する引数が指定されていない」というエラーが出ます。

現在のコード(C#)

myposX=this.transform.position.x;
myposY=this.transform.position.z;
targetposX = player.transform.position.x;
targetposY = player.transform.position.z;
dist = Vector3.【エラー発生箇所】Distance
(this.transform.position.x - targetposX)/10f;

このサイトにある、
https://so-zou.jp/software/tech/programming/c-sharp/class/constructor.htm#no2
「baseで呼び出すコンストラクタを明示しない場合は、引数のないコンストラクタが呼ばれます。基本クラスに引数のないコンストラクタが定義されていないときは、baseで明示しなければCS7036のエラーとなります。」
というのに 初心者なりに解決の可能性を感じますが、よく理解はできません。
誰か説明をお願いします。

0

1Answer

C#並びにUnityの知見が深い訳でなはいので
あくまでアタリつけです(コードの提示が一部しかされていない事も含め)。

本質問では改行されていますが、恐らく
Vector3.Distance(this.transform.position.x - targetposX)/10f);
と一行に纏まっていたのではないでしょうか。

公式ドキュメントを参照すると
public static float Distance (Vector3 a, Vector3 b);
となっており「Vectorの引数が2つ必要だけど1つしかありませんよ」と
言われていませんか?

本来の使用法は
public static float Distance (System.Numerics.Vector3 始点, System.Numerics.Vector3 終点); となるはずです。

オーバーロードをした覚えが無ければ
上記を確認してみてください。

オーバーロードした覚えがあれば
下記ドキュメントを参照しながら試行錯誤のうえ
「試したこと」「現状」を明記したうえで再度質問してください。

1Like

Comments

  1. @kuujooo-git

    Questioner

    ありがとうございます。試してみます。

  2. @kuujooo-git

    Questioner

    確かに、よくよく見ればカンマを付け忘れてました。これでは当然一点しか求められませんね。
    それに、varという型を使って求めるのも可能みたいです。

Your answer might help someone💌