从玩家到鼠标位置画线(Unity)
Draw line from Player to Mouse position (Unity)
当我按下 LMB 时,我正在将我的播放器旋转到鼠标位置,我还想做的是模拟射击。因此,当单击 LMB 时,我想创建一条从玩家位置到鼠标位置的线。我的大问题是我的播放器在移动,我似乎无法弄清楚如何获得射线的起始位置。
到目前为止,光线从 vector3(0,0,0) 渲染到鼠标位置,这不是我想要的。我想让它从 PLAYER 位置渲染到鼠标位置。
这是我的代码:
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);
}
}
}
如果您的代码附加到播放器并且 laserLine.SetPosition() 为您的行设置开始和结束,我认为:
laserLine.SetPosition (1,this.transform.position+lookPos);
应该看起来:
laserLine.SetPosition (this.transform.position,this.transform.position+lookPos);
当我按下 LMB 时,我正在将我的播放器旋转到鼠标位置,我还想做的是模拟射击。因此,当单击 LMB 时,我想创建一条从玩家位置到鼠标位置的线。我的大问题是我的播放器在移动,我似乎无法弄清楚如何获得射线的起始位置。
到目前为止,光线从 vector3(0,0,0) 渲染到鼠标位置,这不是我想要的。我想让它从 PLAYER 位置渲染到鼠标位置。
这是我的代码:
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);
}
}
}
如果您的代码附加到播放器并且 laserLine.SetPosition() 为您的行设置开始和结束,我认为:
laserLine.SetPosition (1,this.transform.position+lookPos);
应该看起来:
laserLine.SetPosition (this.transform.position,this.transform.position+lookPos);