using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player1 : MonoBehaviour {
private float m_nextFire;
///
/// 開火速率
///
public float FireRate = 2.0f;
///
/// 子彈對象
///
public GameObject Bullet;
///
/// 子彈速度
///
public float BulletSpeed;
void FixedUpdate()
{
m_nextFire = m_nextFire + Time.fixedDeltaTime;
if(Input.GetMouseButton(0) && m_nextFire>FireRate)
{
// 擷取滑鼠坐标并轉換成世界坐标
Vector3 m_mousePosition = Input.mousePosition;
m_mousePosition = Camera.main.ScreenToWorldPoint(m_mousePosition);
// 因為是2D,用不到z軸。使将z軸的值為0,這樣滑鼠的坐标就在(x,y)平面上了
m_mousePosition.z = 0;
// 子彈角度
float m_fireAngle = Vector2.Angle(m_mousePosition - this.transform.position, Vector2.up);
if(m_mousePosition.x>this.transform.position.x)
{
m_fireAngle = -m_fireAngle;
}
// 計時器歸零
m_nextFire = 0;
// 生成子彈
GameObject m_bullet = Instantiate(Bullet, transform.position, Quaternion.identity) as GameObject;
// 速度
m_bullet.GetComponent().velocity = ((m_mousePosition-transform.position).normalized * BulletSpeed);
// 角度
m_bullet.transform.eulerAngles = new Vector3(0, 0, m_fireAngle);
}
}
}