1

Unity3d で gameObject のビューをパンするのに苦労しています。スクリプトは初めてで、Android 用の AR (拡張現実) アプリケーションを開発しようとしています。

通常のトップダウン ビューから、45 度に傾斜した「疑似」アイソ ビューにレンダリングされたゲーム オブジェクト (床のモデルなど) が必要です。gameObject が傾いているので、4 つのボタン (左、右、前方 (または上)、後方 (または下)) を使用して、そのビューにパン機能を持たせる必要があります。

問題は、AR カメラがシーン内で静止している必要があるため、フォーラム周辺で既知のパン スクリプト スニペットを使用できないことです。

言及する必要があるのは、トップダウン ビューではなく、等角ビュー (既に別のスクリプトで計算している) でのみパン機能をアクティブにする必要があることです。ゲームオブジェクトの軸の傾きは問題ないはずですよね?

以下は、状態の 2 つのモックアップ イメージです。gameObject (モデル フロア) がレンダリングされ、現在使用しているスクリプト コード (Unity リファレンスから) は、私のニーズに対してあまり機能的ではありません。

ここに画像の説明を入力

ここに画像の説明を入力

gameObject の左方向への移動のコード スニペットを次に示します。他の動きについても - 、 + 速度の値を変更して同じものを使用しますが、前後には動かず、上下に動くだけです。

#pragma strict

// The target gameObject.
var target: Transform;

// Speed in units per sec.
var speedLeft: float = -10;

private static var isPanLeft = false;


function FixedUpdate()
{
if(isPanLeft == true)
{
    // The step size is equal to speed times frame time.
    var step = speedLeft * Time.deltaTime;

    // Move model position a step closer to the target.
    transform.position = Vector3.MoveTowards(transform.position, target.position, step);
}
}

static function doPanLeft()
{
    isPanLeft = !isPanLeft;
}

私は初心者なので、誰かがこの投稿を見て、この機能を最も簡単な方法でコーディングする方法を提案してくれるとしたら、それは素晴らしいことです。

また、サンプルコードやチュートリアルを提供していただけると大変勉強になりますので、よろしくお願いします。お時間とご回答いただきありがとうございます。

4

1 に答える 1

0

私が正しく理解している場合、回転と位置が固定されたカメラがあり、カメラの視点から上下左右に移動したいオブジェクトがあります

オブジェクトを一連の角度に回転するには、単純に行います

transform.rotation = Quaternion.Euler(45, 45, 45);

それを移動するには、このようにワールド空間でカメラを上/右/前に使用して上と左に移動します

transform.position += camera.transform.up;
transform.position -= camera.transform.right;

シーンにカメラが 1 つしかない場合は、次の方法でその変換にアクセスできます。Camera.main.transform

誰かが左矢印を押したときに移動する方法の例

if(Input.GetKeyDown(KeyCode.LeftArrow))
{
    transform.position -= camera.transform.right;
}
于 2014-08-29T09:06:55.033 に答える