11 放大,缩小相机视角,近距离观看炮战 (和儿子一起编游戏-塔防系列 )

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游戏,以后老余也要做一个给小余玩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值