Unity摄像机控制

输入系统用的是UnityEngine.InputSystem

//单展位摄像机的处理

using UnityEngine;
using System.Collections;
using UnityEngine.InputSystem;

public class CameraControl : MonoBehaviour
{
	// Use this for initialization
	float x1;
	float x2;
	float x3;
	float x4;

	public float speed = 0.01f;

	// Update is called once per frame
	void Update()
	{
		
		//w键前进
		if (Keyboard.current.wKey.isPressed)
		{
			transform.Translate(new Vector3(0, 0,  Time.deltaTime));
		}
		//s键后退
		if (Keyboard.current.sKey.isPressed)
		{
			transform.Translate(new Vector3(0, 0, -1* Time.deltaTime));
		}
		//a键后退
		if (Keyboard.current.aKey.isPressed)
		{
			transform.Translate(new Vector3(-1 * Time.deltaTime, 0, 0 ));
		}
		//d键后退
		if (Keyboard.current.dKey.isPressed)
		{
			transform.Translate(new Vector3(1 * Time.deltaTime, 0, 0 ));
		}

		//鼠标在这一帧移动的水平距离
		float x = Mouse.current.delta.x.ReadValue();
		//绕世界坐标中的y轴旋转
		transform.Rotate(Vector3.up * x * speed, Space.World);
		//鼠标在这一帧移动的垂直距离
		float y = Mouse.current.delta.y.ReadValue();
		//绕自身的x轴转
		transform.Rotate(Vector3.right * -y * speed);

        if (transform.localPosition.x>30)
        {
			transform.localPosition = new Vector3(30,transform.localPosition.y,transform.localPosition.z);

        }
        if (transform.localPosition.z > 30)
        {
			transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, 30);

		}

		if (transform.localPosition.x < -30)
		{
			transform.localPosition = new Vector3(-30, transform.localPosition.y, transform.localPosition.z);

		}
		if (transform.localPosition.z < -30)
		{
			transform.localPosition = new Vector3(transform.localPosition.x, transform.localPosition.y, -30);

		}

		if (transform.localPosition.y < 0.5f)
		{
			transform.localPosition = new Vector3(transform.localPosition.x,0.5f , transform.localPosition.z);

		}
		if (transform.localPosition.y > 30)
		{
			transform.localPosition = new Vector3(transform.localPosition.x, 30, transform.localPosition.z);

		}
	}
}




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值