繁体   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