ロバメモ - 素人のUnity覚書と奮闘記

素人のUnity覚書と奮闘記

transform

CanvasのGameObjectをmousePositionに追従させたい

あんまり自信ないかも。 いや、自信満々で書いた記事などないけど。笑 やりたいこと やり方 考え方 座標の違いを解消する 座標の起点の違いを解消する やりたいこと お題通り、キャンバスに配置した画像をカーソル追従させたい。 やり方 以下のコードを追従…

カメラを領域内でドラッグ移動させたい&カメラのズーム処理(2D)

やりたいこと ドラッグ処理 1:カメラにコライダーを追加する カメラがX90度回転している理由 2:スプライトを配置 3:Rayを飛ばすクラスを作る 4:ヒット判定とドラッグ判定 ドラッグ判定が2重チェックな理由 5:ドラッグ処理を追加する ドラッグ領域…

移動距離が変わっても、指定した速度で等速直線移動させたい

やりたいこと 使うメソッド コード 到達したら消滅したい場合 やりたいこと ・移動距離が変わっても、指定した速度で直線移動し、到達したら止まる。 魔法師の魔法攻撃処理で悩んだのでメモ。 全体の移動距離から1フレームの移動距離(つまり速度)を割り出…

ドラッグする時にオブジェクトがカーソルに自動でセンタリングしないようにする

Unityでゲームオブジェクトをドラッグさせると、動かした瞬間にゲームオブジェクトがカーソルの位置に移動してしまう。 大きい画像を少しずつドラッグさせたい場合は、困る。 ということで、自動センタリングをさせない方法をメモ。 コード ゲームオブジェク…

Transform.Rotate()が途中で変になる

やりたいこと 問題点 解決策 やりたいこと ゲームオブジェクトをクリックで時計回りに30度ごと回転させ、現在の回転角度を知りたい。 問題点 obj = 回転させたいオブジェクト rot = Z角度を保持する変数 GameObject obj; float rot; obj.transform.Rotate …

親の回転を無視したい

親の回転角度を引いて相殺すればええやん?って思ったら、簡単にいかなかったのでメモ。 2018/11/24 修正変更 勘違いしてたかも!なので修正します。 やりたいこと オブジェクトの相関図 コード 実行結果 考え方 やりたいこと 親(3Dゲームオブジェクト)が…

矢を放物線状に飛ばしたい(2D 重力無視)

矢を放物線状に飛ばしたい!ということで四苦八苦した模様をメモ。 完成動画 ベジェ曲線の方程式 方程式の t って何? P1xを求める P1yを角度から求める 角度から求める理由 P1yの求めかた 距離に応じて角度を変化させる 1秒あたりの t の変化量 コーディン…

Mobをルート通りに移動させるには2 スプライトアニメーションの作成

前記事 robamemo.hatenablog.com 前記事では、とりあえずキューブをルート通りに移動させるところまで出来た。 このキューブに画像を付けて、歩行アニメーションを表示したい。 右方向に進んでいたら右を向いた画像を、上方向なら後ろ姿の画像に切り替える方…

Mobをルート通りに移動させるには1 キューブを移動させる

ディフェンスゲームの最初の壁。ルート通りに移動する方法。 四苦八苦した結果、それっぽいのができたのでメモ。 ちなみに、ナビゲーションは使いません。 1:マップを配置 2:方向転換用キューブを配置 3: Mob用のキューブを配置 4:方向を指定するに…

GameObjectのwidthを取得する

いわゆるココのwidthを取得したい場合。 コード 説明 コード GameObject gauge; float gaugeWidth; void Start () { gauge = gameObject.transform.Find ("HP/gauge").gameObject; gaugeWidth = gauge.GetComponent<RectTransform> ().sizeDelta.x; } 説明 ・ widthはfloat</recttransform>…

○秒で○度 オブジェクトを回転する

やりたいこと 例えば、ボタンを押したら、3秒かけて360度回転したい場合 開店後は停止する。 コード [SerializeField]GameObject handle; bool rotStart = false; float speed = 3.0f; float rotAngle = 360f; float variation; float rot; void Start () { …

オブジェクトを回転させる その2

使うメソッド //回転させる public void Rotate(Vector3 eulerAngles, Space relativeTo = Space.Self); //回転角度を取得する public Vector3 localEulerAngles; 30度ずつ時計回りするスクリプト public void OnRotation (GameObject target) { target.tr…

オブジェクトを回転させる

使うメソッド gameObject.transform.rotation = Quaternion.Euler(float x, float y, float z); 使い方 例えば、ゲームオブジェクトを時計回りで30度ずつ動かしたい場合。 [Global.cs] public float second; public GameObject hariS; void Awake () { har…