unity相机远近缩放和拖拽移动

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

/// <summary>
/// 相机脚本,平滑移动
/// </summary>
public class CameraFollowCtrl : MonoBehaviour
{
	/// <summary>
	/// 2D镜头缩放范围
	/// </summary>
	public float maxSD = 20.0f;
	public float minSD = 1f;
	public float zoooSpeed = 0.3f;

	private Vector2 start;
	private Vector2 drag;
	private Vector3 pos;
	private bool isDrag;

	private void OnGUI()
	{
		if(Event.current.type == EventType.MouseDown)
		{
			start = Event.current.mousePosition;
		}
		if(Event.current.type == EventType.MouseDrag)
		{
			drag = Event.current.mousePosition;
			Vector3 vecStart = Camera.main.ScreenToWorldPoint(new Vector3(start.x, -start.y, 0));
			Vector3 vecdrag = Camera.main.ScreenToWorldPoint(new Vector3(drag.x, -drag.y, 0));
			pos = vecdrag - vecStart;
			start = drag;
			isDrag = true;
		}
		else
			isDrag = false;
	
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity3D中实现即时战略游戏的相机功能相对简单。为了实现,我们需要在游戏场景中添加一个相机,并创建一个脚本来控制相机移动。 首先,让我们来实现相机功能。我们可以在脚本中定义一个鼠标按下的标志以及按下时的鼠标位置。当玩家按下鼠标时,我们记录下当前鼠标的位置,并将鼠标按下的标志设为true。接下来,在鼠标移动的回调函数中,我们检查鼠标按下的标志是否为true。如果是,我们获取当前鼠标的位置,并计算出鼠标移动的距离。然后,我们将相机的位置根据鼠标移动的距离进行相应的移动。这样就实现了相机功能。 接下来,我们来实现相机功能。我们可以使用鼠标滚轮来实现相机。在脚本中,我们可以使用Input.GetAxis("Mouse ScrollWheel")来获取鼠标滚轮的滚动距离。然后,我们可以根据滚动距离来调整相机。例如,我们可以通过修改相机的field of view来实现。如果滚轮向前滚动,我们可以让相机的field of view减小,从而实现小视野。如果滚轮向后滚动,我们可以让相机的field of view增加,从而实现大视野。 通过以上步骤,我们就可以实现在Unity3D中的即时战略游戏中相机功能。这样玩家就可以通过移动相机,并通过滚轮来进行,从而更好地观察游戏场景和控制游戏进程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值