これは、繰り返される質問のように思えるかもしれません。私は釣り竿とロッドの端にフックを持っています。画面上のどこをクリックしても、クリックの y インデックスに基づいてフックをその位置に移動します。たとえば、フックが現在 (2,3) にあるとします (400, 9) をクリックすると、フックが (2,9) に移動します。そのため、クリックに基づいて垂直に移動するだけです。
これはうまくいっています。フックの位置に基づいて、それに応じて釣り竿をスケーリングします。したがって、フックの配置が完了したら、次の ScaleRod() を呼び出します。ロッド スプライトには、中央ではなく左上にピボットがあります。ロッドを縦にのみスケールさせたい。以下は同じための私のコードです:
void scaleRod() {
//get current size of the fishing rod
var rodLength = System.Math.Abs(renderer.bounds.size.y);
//Get distance between the hook and the rod based on y coordinates.
float hookRodDistance = (System.Math.Abs(transform.position.y) + rodLength) - System.Math.Abs(hookObject.transform.position.y);
hookRodDistance = System.Math.Abs(hookRodDistance);
//Calculate the scale factor
float scaleFactor = hookRodDistance / rodLength;
//Scale the rod
transform.localScale = new Vector3(transform.localScale.x, scaleFactor * transform.localScale.y, transform.localScale.z );
}
この関数は、スケール上で私に奇妙な出力を与えています。
誰か助けてください。これでしばらく立ち往生しています。どうもありがとう。
編集:問題についてのより良いアイデアのために画像を追加します。