地方在住者による、CG系の雑記

何もない地方と、パソコン一台で何でも作れるCGとの相性は抜群であるというモットーをもとに、CG大好き管理人が勉強する様子を綴ったブログ

ミッション バスケゲームを作れ!その2 #Unity

前回紹介したアセットのスクリプト修正をChatGPT先生のお力添えを借りながら行っていく。(案件じゃないよ)

一応アセット作者にメールで直接問い合わせる手段もあるが、返信までに時間がかかりそうだし、ChatGPTの方針で進める。

 

「以下のコードをUnityEngine.UIを使って書き換えて下さい。」と命令。

変更箇所だけババっと記す。

 

Joystick_Script.cs

(変更前)gui.pixelInset.x→(変更後)gui.rectTransfomr.rect.x

 

(変更前)

gui.pixelInset = new Rect
    (
      Mathf.Clamp(guiTouchPos.x, guiBoundary.min.x, guiBoundary.max.x),
      Mathf.Clamp(guiTouchPos.y, guiBoundary.min.y, guiBoundary.max.y),
      gui.pixelInset.width,
      gui.pixelInset.height
    );

→(変更後)

gui.rectTransform.anchoredPosition = new Vector2

(

Mathf.Clamp(guiTouchPos.x,guiBoundary.min.x,guiBoundary.max.x),

Mathf.Clamp(guiTouchPos.y,guiBoundary.min.y,guiBoundary.max.y)

);

 

 

gui.pixelInset = defaultRect;

gui.rectTransform.sizeDelta = new Vector2(defaultRect.width, defaultRect.height);

 

変更前

else if (gui.HitTest(touch.position))

{

shouldLatchFinger = true;

}

変更後

 else if (RectTransformUtility.RectangleContainsScreenPoint(gui.rectTransform,touch.position))
 {
     shouldLatchFinger = true;
 }

 

この要領で、Shoot_Script.csとPass_Script.csも進める。

 

できた結果がコチラッ!

youtu.be

WASDで移動、Zキーでパスらしいです。

どうやってシュート撃つの...

 

[今回の学び]

RectTransformのrectプロパティは読み取り専用であるため、代わりにsizeDeltaプロパティを使用することができます。

rectTransfomr.rectは読み取り専用です。代わりに、rectTransfomr.anchoredPositonを使用して、RectTransfomrのアンカー位置を調整することができます。