using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMove : MonoBehaviour
{
[SerializeField]
private float moveSpeed;
float xx = -90f;
float yy = 0.0f;
[SerializeField]
private float yMinLimit = -50, yMaxLimit = 40;//俯仰角
public bool obj_retyrn;
//跳
private bool stop;
private Vector3 targetScreenpos;//拖拽物体的屏幕坐标
private Vector3 targetWorldpos;//拖拽物体的世界坐标
private Vector3 mouseScreenpos;//鼠标的屏幕坐标
private Vector3 offset;//偏移量
public Transform target;//拖拽物体
void Start()
{
}
void Update()
{
//移动
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
transform.Translate(h * moveSpeed * Time.deltaTime, 0, v * moveSpeed * Time.deltaTime);
//旋转
Quaternion rotation = Quaternion.Euler(yy, xx, 0.0f);
if (Input.GetMouseButton(1))
{
xx += Input.GetAxis("Mouse X") * 2;
yy -= Input.GetAxis("Mouse Y") * 2;
yy = ClampAngle(yy, yMinLimit, yMaxLimit);
transform.rotation = Quaternion.Lerp(transform.rotation, rotation, Time.deltaTime * 400);
}
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
//CheckButton(hit.collider.gameObject);
//print(hit.collider.gameObject.name);
}
}
if (Input.GetKeyDown(KeyCode.Space)&& stop==false)
{
transform.GetComponent<Rigidbody>().AddForce(Vector3.up * 150);
StartCoroutine(Yanshi());
stop = true;
}
}
private void OnMouseDrag()
{
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.tag.Equals("Tools"))
{
print(hit.collider.gameObject.name);
hit.collider.gameObject.transform.position = new Vector3(hit.point.x, transform.position.y, hit.point.z);
}
}
}
}
/// <summary>
/// 检查按钮事件
/// </summary>
float ClampAngle(float angle, float min, float max)
{
if (angle < -360)
angle += 360;
if (angle > 360)
angle -= 360;
return Mathf.Clamp(angle, min, max);
}
IEnumerator Chaizhuang()
{
yield return new WaitForSeconds(3);
}
IEnumerator Yanshi()
{
yield return new WaitForSeconds(0.8f);
stop = false;
}
}
把此脚本挂在胶囊体上,胶囊体挂相机,注意初设速度