簡體   English   中英

在Unity中旋轉2D世界

[英]Rotating 2D world within Unity

我正在考慮使用C#在Unity中開發游戲。該游戲將采用陀螺儀方向,並相應於手機旋轉的方向旋轉。

我很好奇這是如何工作的,我知道我將如何讀取和更新陀螺儀的方向,但是我不確定如何將其分配給旋轉的世界。 世界上將會有一個玩家,這將是下一個挑戰,以防止玩家旋轉時穿越世界。 因此,世界應該圍繞玩家當前位置旋轉。

我目前沒有任何代碼,因為我正在設計中,但是我無法理解如何實現此目的的邏輯

謝謝

如果我的目標正確,我猜想像在“拳頭游戲”中那樣旋轉攝像機就足夠了,並且比在保持玩家靜止的情況下旋轉整個世界要簡單得多。

這就是我要做的事情,首先,我不會旋轉世界,因為這是很多要旋轉的對象,但是如果您真的想,可以將整個世界作為一個游戲對象的父對象,然后旋轉該對象關於基於玩家位置的軸(請參閱: https : //docs.unity3d.com/ScriptReference/Transform.RotateAround.html )。

最簡單的方法是將主攝像機連接到播放器(將其拖放到播放器中的播放器對象上),然后旋轉播放器。

例如,您可以在沒有陀螺儀的情況下在計算機上進行測試:

using UnityEngine;

public class rotatorScript: MonoBehaviour {
    void Update() {
        // Will Rotate based off of left/right arrows
        float rotator = -Input.GetAxisRaw("Horizontal");
        // Move up or down based off of up/down Arrows
        float verticalDirection = Input.GetAxisRaw("Vertical");
        // Do the actual movement... using space.self so it is based on the player not the world.
        transform.Translate(Vector3.up * verticalDirection * Time.deltaTime * 5f, Space.self);
        transform.Rotate(0f,0f,90f * Time.deltaTime * rotator); 
    }
}

該腳本將附加到播放器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM