簡體   English   中英

如何使2D對象面對其移動方向(如漂移)

[英]How do I make a 2D object face the direction it is moving like drifting

在此處輸入圖片說明

如上圖所示,我有兩個GameObject :汽車和圓圈。 汽車跟隨圓圈,圓圈隨光標移動。 目前,我的汽車正在遠處追隨圓。 當圓沿x軸移動時,我想像漂移一樣旋轉汽車。

這是我的汽車跟隨腳本:

public class Follow : MonoBehaviour
{

    public Transform leader;
    public float followSharpness = 0.1f;

    Vector3 _followOffset;

    void Start()
    {
        // Cache the initial offset at time of load/spawn:
        _followOffset = transform.position - leader.position;
    }

    void LateUpdate()
    {
        // Apply that offset to get a target position.
        Vector3 targetPosition = leader.position + _followOffset;
        //GetComponent<Rigidbody2D>().rotation = 1.5f;

        // Keep our y position unchanged.
        //targetPosition.y = transform.position.y;

        // Smooth follow.    
        transform.position += (targetPosition - transform.position) * followSharpness;

    }
}

您可以嘗試使用Transform.LookAt

void LateUpdate()
{
    Vector3 targetPosition = leader.position + _followOffset;
    transform.position += (targetPosition - transform.position) * followSharpness;
    transform.LookAt(leader);
}

免責聲明:我目前無法測試此代碼是否有效,您必須嘗試一下它,看看它是否產生期望的結果。

因此,根據您所描述的,是要讓汽車始終面向光標,因此它始終“看着”光標,這是您可以執行的操作:

  Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
     diff.Normalize();

     float rot_z = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
     transform.rotation = Quaternion.Euler(0f, 0f, rot_z - 90);

答案:LookAt 2D等效嗎?

暫無
暫無

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

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