旗を掲げる
CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 32/85。
localPositionはpositionと同じように、毎フレーム読み取ったり変更したりできます。親を登る子オブジェクト、たとえば塔を登る小屋やマストを登る旗は、localPositionに沿って移動し、自身のローカルな高さを頂上と比較するため、親がどこにあっても機能します。
if (transform.localPosition.y < 10)
{
transform.localPosition += new Vector3(0, 2 * Time.deltaTime, 0);
}代わりにposition.yと比較すると、親の位置が高くなったり低くなったりするたびに、頂上の位置も変わってしまいます。
チャレンジ
中級上矢印キーで旗をマストの上まで上げます。
Update()内に、if (Input.GetKey(KeyCode.UpArrow) && transform.localPosition.y < 4)と記述します。- その中で、
new Vector3(0, climb * Time.deltaTime, 0)をtransform.localPositionに加えます。
「プレイ」を押して上矢印キーを押し続けます。旗がマストの頂上まで上がり、止まります。その後、「確認」を押します。
自分で試してみよう
using UnityEngine;
public class Hoist : MonoBehaviour
{
public float climb = 1f;
void Start()
{
transform.localPosition = new Vector3(0.6f, 1, 0);
}
void Update()
{
// 上矢印キーを押している間、Shipからの高さが4になるまで上昇する
}
}
Unityスクリプトの基礎のすべてのレッスン
自分で練習してみよう: Unityプレイグラウンド