繁体   English   中英

从播放器到鼠标位置绘制线条(单位)

[英]Draw line from Player to Mouse position (Unity)

当我按LMB键时,我正在将播放器旋转到鼠标位置,我还想做的是模拟射击。 因此,当单击LMB时,我想在播放器位置到鼠标位置之间创建一条线。 我的大问题是我的播放器正在移动,我似乎无法弄清楚如何获得射线的起始位置。

截至目前,射线从vector3(0,0,0)渲染到鼠标位置,这不是我想要的。 我希望它从播放器位置渲染到鼠标位置。

这是我的代码:

 void Update () {

 transform.Translate (Vector3.down * Time.deltaTime * movementSpeed, Space.World);

 if (Input.GetButtonDown("Fire1")) {

     Vector3 mousePos = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 10);
     Vector3 lookPos = Camera.main.ScreenToWorldPoint (mousePos);
     lookPos = lookPos - transform.position;
     float angle = Mathf.Atan2 (lookPos.y, lookPos.x) * Mathf.Rad2Deg + 90;
     transform.rotation = Quaternion.AngleAxis (angle, Vector3.forward);

     if (Time.time > nextFire) 
     {
         nextFire = Time.time + fireRate;
         StartCoroutine (shotEffect());
         laserLine.SetPosition (1,this.transform.position+lookPos);            
     }
 }

}

如果您的代码附加到player和laserLine.SetPosition()设置行的开始和结束,我认为:

laserLine.SetPosition (1,this.transform.position+lookPos);

应该看起来:

laserLine.SetPosition (this.transform.position,this.transform.position+lookPos);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM