簡體   English   中英

試圖在兩點之間進行 lerp 但得到 NullReferenceException [unity]

[英]Trying to lerp between two point but get NullReferenceException [ unity]

我試圖在我的腳本中的兩點之間進行 lerp 但我得到 NullReferenceException
這是代碼:

    Transform  endPos;
    float speed;
 void Start()
    {
       endPos.position = new Vector3(0, -1, 1);

    }
 void  Update()
    {
    transform.position = Vector3.Lerp(transform.position, endPos.position, speed * Time.deltaTime);
    }     

有趣的是,當我將轉換設置為 public 並在編輯器中設置它時,它可以工作。
我什至試圖通過創建一個游戲對象來使用它並通過那里設置位置,但沒有運氣。
那么我如何通過腳本而不是編輯器來做到這一點?
謝謝。

這是因為當您嘗試設置其位置時,您的endPos轉換為空。 使用Vector3而不是變換。 像這樣編輯你的代碼

    Vector3 endPos;
    float speed;

    void Start()
    {
       endPos = new Vector3(0, -1, 1);    
    }

    void Update()
    {
       transform.position = Vector3.Lerp(transform.position, endPos, speed * Time.deltaTime);
    } 

暫無
暫無

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

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