11.1 基本概念
Camera在U3D里面是一个很重要的概念,老余后面还想做一个FPS游戏,那个里面对Camera的控制要求就非常高了,他会极大的提升游戏的体验,老余在这个塔防游戏想小试牛刀一把,毕竟饭要一口一口吃吗!
11.2 在相机上面绑脚本
U3D通行的做法就是在Camera对象上面绑定脚本,老余也不例外,照做就是了,叫CameraController
老余就想实现AWSD上下左右移动塔防棋盘,滚轮实现放大缩小,说一句难听话,这些脚本网上都有,老余浏览了一下,找了一个评论说靠谱的一个,大概修改了一下,就贴出来了,Copy & Paste也是人家的基本功吗!
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float panSpeed = 30f;
public float panBorderThickness = 10f;
public float sensitivityMouse = 2f;
public float scrollSpeed = 5f;
public float minY = 10f;
public float maxY = 80f;
public float speed = 10.0f;
// Update is called once per frame
void Update()
{
if (Input.GetKey("w"))
{
transform.Translate(Vector3.forward * panSpeed * Time.deltaTime, Space.World);
}
if (Input.GetKey("s") )
{
transform.Translate(Vector3.back * panSpeed * Time.deltaTime, Space.World);
}
if (Input.GetKey("d") )
{
transform.Translate(Vector3.right * panSpeed * Time.deltaTime, Space.World);
}
if (Input.GetKey("a"))
{
transform.Translate(Vector3.left * panSpeed * Time.deltaTime, Space.World);
}
float scroll = Input.GetAxis("Mouse ScrollWheel");
Vector3 pos = transform.position;
pos.y = pos.y - scroll * 1000 * scrollSpeed * Time.deltaTime;
pos.y = Mathf.Clamp(pos.y, minY, maxY);
transform.position = pos;
}
}
老余把属性都变量化了,上面的属性参数都是可以调的,满足不同人的习惯。
这一次老余只是有限的试了试操作摄像机,其实真正玩摄像机溜的是FPS游戏,以后老余也要做一个给小余玩。