Unity-RTS平移相机

实现相机平移功能
查了很久的csdn没找到合适,最终自己写了一个

using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class RSTCamera : MonoBehaviour {

    public float HorSpeed = 10f;//移动速度
    public float VerSpeed = 10f;//垂直移速

    private Transform m_transform;
    void Start()
    {
        m_transform = Camera.main.transform;

    }
    //Update is called once per framevoid 
    void Update(){
        Vector3 v1 = Camera.main.ScreenToViewportPoint(Input.mousePosition);
        Vector3 dir_forward = m_transform.forward;
        Vector3 dir_right = m_transform.right;

        //消除高度变化
        dir_right.y = 0;
        dir_forward.y = 0;
        dir_forward = dir_forward.normalized;
        dir_right = dir_right.normalized;

        if (v1.x < 0.05f)
        {
            m_transform.Translate(-dir_right * HorSpeed * Time.deltaTime, Space.World);
        }
        if (v1.x > 1 - 0.05f)
        {
            m_transform.Translate(dir_right * HorSpeed * Time.deltaTime, Space.World);
        }

        if (v1.y < 0.05f)
        {
            m_transform.Translate(-dir_forward * VerSpeed * Time.deltaTime, Space.World);
        }
        if (v1.y > 1 - 0.05f)
        {
            m_transform.Translate(dir_forward * VerSpeed * Time.deltaTime, Space.World);
        }


        //Horizontal、Vertical
        if (Input.GetAxis("Vertical") != 0)
        {   
            m_transform.Translate(dir_forward * VerSpeed * Input.GetAxis("Vertical") * Time.deltaTime, Space.World);
        }
        if ( Input.GetAxis("Horizontal") != 0)
        {   
            m_transform.Translate(dir_right * HorSpeed * Input.GetAxis("Horizontal") * Time.deltaTime, Space.World);
        }

    }
}

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值