滑鼠雙擊、相機跟隨、滾輪縮放腳本
設置滑鼠滾輪滑動,視野的縮放:
public class CameraScale : MonoBehaviour {
//設置靈敏度
public float mSensitivity;
//最大距離限制
public float maxDistance;
//最小距離限制
public float minDistance;
//相機應該移動的距離
private float distance;
//獲取目標
public Transform target;
void Start () {
distance = (transform.position - target.position).magnitude;
}
void Update () {
//畫線 相機到物體畫線
Debug.DrawLine(transform.position,target.position,Color.red);
//滑鼠滾輪移動乘靈敏度 = 相機應該移動的距離
distance += Input.GetAxis("Mouse ScrollWheel") * mSensitivity;
//限制滾輪移動範圍
float dis = Mathf.Clamp(distance, minDistance, maxDistance);
//重點部分:向量的加減
//獲取相機到物體的單位向量乘相機應該移動距離 = 物體到相機的向量
Vector3 offset = (transform.position - target.position).normalized * dis;
//滑鼠滾輪移動後相機應該移動到的位置
transform.position = target.position + offset;
}
}
滑鼠雙擊腳本:
public class D : MonoBehaviour {
//計時器,在一定的時間內雙擊有效
float time;
//計數器
int count;
void Start () {
}
void Update () {
//滑鼠雙擊
if (Input.GetMouseButtonDown(0))
{
count++;
//第一次點擊滑鼠,計時標記
if (count == 1)
{
time = Time.time;
}
//第二次點擊滑鼠,時間間隔小於等於0.5 列印,重置計數和計時
if (count == 2 && Time.time - time <= 0.5f)
{
print("雙擊!!");
count = 0;
time = 0;
}
//當間隔時間超過0.5秒時,重置計數、計時;
if (Time.time - time > 0.5f)
{
time = 0;
count = 0;
}
}
}
}
相機跟隨:
public class CameraFllow : MonoBehaviour {
Transform target;
Vector3 dir;
Camera mCamera;
void Start () {
target = GameObject.FindWithTag("Player").transform;
mCamera = GetComponent<Camera>();
dir = transform.position - target.position;
}
void LateUpdate () {
transform.position = target.position + dir;
}
}
推薦閱讀:
※如何評價一個滑鼠性能的好壞?
※為什麼要用滑鼠?
※這隻專門吃雞的雷蛇滑鼠,可能不是親生的?
※現在滑鼠品牌里最好的是哪個?
※有人入手了多彩垂直滑鼠嗎??
TAG:滑鼠 |