Unity实战 RTS3D即时战略游戏开发(五) 鼠标管理器

     大家好,我是Zander,我们接着来开发Rts3D即时战略游戏开发。上一章我们对单位选中时进行了处理,接下来我们来处理 一下输入控制。

现在我简单的来说一下鼠标控制管理器的作用,它用于检测鼠标点击,特别是在3D空间内的点击物体。如果检测到点击交互我们就调用之前写好的Select函数,取消选择时我们就会调用Deselect 函数,此外当按下Shift键时还能处理多选功能,下面我们来实现一下这些功能:首先创建一个MouseManager脚本,相关代码如下:

using UnityEngine;
using System.Collections.Generic;

public class MouseManager : MonoBehaviour {

	private List<Interactive> Selections = new List<Interactive>();  //被选中物体的集合

	// Update is called once per frame
	void Update () {
		if (!Input.GetMouseButtonDown (0))    //如果没有点击鼠标左键就跳过处理,节省性能
			return;

		var es = UnityEngine.EventSystems.EventSystem.current;
        if (es != null && es.IsPointerOverGameObject())//如果用户点击了2D空间中的某些UI元素,我们就要避免选中UI后的3D对象,同时还要检测是否点击了2D元素
			return;

		if (Selections.Count > 0) {
			if (!Input.GetKey(KeyCode.LeftShift) && !Input.GetKey(KeyCode.RightShift))   //移除已经被鼠标右键选中的和被按键左Shift键多选的
			{
				foreach(var sel in Selections)
				{
					if (sel != null) sel.Deselect();
				}
				Selections.Clear();
			}
		}

		var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
		RaycastHit hit;
		if (!Physics.Raycast (ray, out hit))  //如果没有点到任何东西,return
			return;

		var interact = hit.transform.GetComponent<Interactive> (); //检测物体的Interactive组件,如果Null 则返回
		if (interact == null)
			return;

		Selections.Add (interact);
		interact.Select ();
	}
}
   然后把MouseManager脚本拖拽到场景中的Manager上,因为我们使用的是物理检测,所以在射线检测时要求物体必须有碰撞体。所以我们要为DroneUnit预设体添加碰撞盒子,建议使用性能消耗低的SphereCollider碰撞体。

    好了,这节的内容就到这了,欢迎大家加入QQ群:280993838  或者关注我的公众号:



  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity 2D与3D手机游戏开发实战PDF》是一本关于使用Unity引擎开发手机游戏的实用指南。本书以深入浅出的方式介绍了Unity引擎的使用方法,帮助读者从零开始开发出精美的2D和3D手机游戏。 首先,本书详细介绍了Unity引擎的基本概念和界面,使读者能够迅速上手。同时,书中还介绍了Unity的2D和3D游戏开发工具,包括场景编辑器、动画编辑器、物理引擎等,帮助读者了解如何创建游戏场景、设计角色动画,以及添加游戏物理效果。 其次,本书提供了实战项目,通过逐步演示的方式,引导读者完成一个完整的2D或3D手机游戏。通过跟随书中的教程,读者可以学习到游戏开发的整个流程,包括设计游戏关卡、实现游戏逻辑、优化游戏性能等。 本书还介绍了一些实用的游戏开发技巧和经验,帮助读者解决常见的问题和挑战。例如,如何处理碰撞检测、如何优化游戏帧率等。这些技巧和经验对于开发高质量的手机游戏非常重要。 最后,本书还提供了一些额外的资源和工具,例如一些常用的插件和脚本,以及一些游戏美术资源,帮助读者加快游戏开发的速度。 总而言之,通过《Unity 2D与3D手机游戏开发实战PDF》,读者可以系统地学习Unity引擎的使用方法,了解手机游戏开发的整个流程,并且获得一些实用的技巧和工具,帮助他们开发出优质的手机游戏作品。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值