標籤:

滑鼠雙擊、相機跟隨、滾輪縮放腳本

設置滑鼠滾輪滑動,視野的縮放:

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:滑鼠 |