【Unity3D自学记录】 Unity3D游戏开发之键盘选取、切换目标
2014-07-02 16:06
309 查看
▇ 知识点
GameObject.FindObjectsWithTag:获取带有指定Tag的多个游戏物体;
Input.GetKeyDown:检测指定按键是否按下;
(GameObject instance).renderer.material.color:修改这个参数使得对象的颜色变动,让目标是否选中效果更明显;
(GameObject instance).enabled:修改这个值使得对象是否可用/可见;
▇ 思路
新建一个叫做Enemy的Tag,并设置到所有怪物上,我这里暂时只用Cube代替;
新建一个Creature脚本,使其拥有单位名称、等级、生命、能量等属性,并附加给所有怪物后调整属性;
新建一个Targeting脚本,附加到First Person Controller上,让玩家拥有选取目标的能力;
在Targeting的Start方法中,用获取所有的敌人单位,维护到一个List中;
在Targeting中,建立一个Creature成员变量,用来表示当前选中的目标生物;
在Targeting的Update方法中,检测玩家按键,Tab用来选取下一个目标,Esc用来取消当前选中目标;
用NGUI新建一个当前目标框体,并用脚本来显示当前目标的属性,当没有选择目标的时候,把目标框体隐藏掉;
▇ 脚本(Creature.cs)
[C#] 纯文本查看 复制代码
?
▇ 脚本(Targeting.cs)
[C#] 纯文本查看 复制代码
?
▇ 脚本(TargetPortrait.cs)
[C#] 纯文本查看 复制代码
?
▇ 效果
img.png (480.89 KB, 下载次数: 0)
下载附件 保存到相册
2013-6-30 13:04 上传
按Tab键选中目标后,对应的Cube就会变红。按Esc则会取消选中的目标,原来变红的Cube全会变白。在《Hack & Slash RPG》教学视频中还做了优先按距离选取最近的那个目标,原理也很简单,就是用Vector3.Distance求两点间的距离,在修改当前目标前先将目标列表按距离排序就可以了。在魔兽世界里效果就更帅气了,目标底下会有个光圈。不过我的制作思路还不是很清晰,就先放一放,应该不会太难
GameObject.FindObjectsWithTag:获取带有指定Tag的多个游戏物体;
Input.GetKeyDown:检测指定按键是否按下;
(GameObject instance).renderer.material.color:修改这个参数使得对象的颜色变动,让目标是否选中效果更明显;
(GameObject instance).enabled:修改这个值使得对象是否可用/可见;
▇ 思路
新建一个叫做Enemy的Tag,并设置到所有怪物上,我这里暂时只用Cube代替;
新建一个Creature脚本,使其拥有单位名称、等级、生命、能量等属性,并附加给所有怪物后调整属性;
新建一个Targeting脚本,附加到First Person Controller上,让玩家拥有选取目标的能力;
在Targeting的Start方法中,用获取所有的敌人单位,维护到一个List中;
在Targeting中,建立一个Creature成员变量,用来表示当前选中的目标生物;
在Targeting的Update方法中,检测玩家按键,Tab用来选取下一个目标,Esc用来取消当前选中目标;
用NGUI新建一个当前目标框体,并用脚本来显示当前目标的属性,当没有选择目标的时候,把目标框体隐藏掉;
▇ 脚本(Creature.cs)
[C#] 纯文本查看 复制代码
?
[C#] 纯文本查看 复制代码
?
[C#] 纯文本查看 复制代码
?
img.png (480.89 KB, 下载次数: 0)
下载附件 保存到相册
2013-6-30 13:04 上传
按Tab键选中目标后,对应的Cube就会变红。按Esc则会取消选中的目标,原来变红的Cube全会变白。在《Hack & Slash RPG》教学视频中还做了优先按距离选取最近的那个目标,原理也很简单,就是用Vector3.Distance求两点间的距离,在修改当前目标前先将目标列表按距离排序就可以了。在魔兽世界里效果就更帅气了,目标底下会有个光圈。不过我的制作思路还不是很清晰,就先放一放,应该不会太难
相关文章推荐
- 【Unity3D自学记录】Unity3D游戏开发之鼠标滚轮实现放大缩小
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(二)
- 【Unity3D自学记录】Unity3D游戏开发之连续滚动背景
- 【Unity3D自学记录】Unity3D游戏开发之自由视角状态下的角色控制(一)
- 【Unity3D自学记录】Unity3D游戏开发之跑酷游戏项目讲解
- Unity3D学习笔记(二十)用键盘选取/切换目标生物
- 【Unity3D自学记录】Unity3D开发之原创开关小部件
- 【Unity3D自学记录】游戏开发之怪物AI
- 【Unity3D自学记录】Resources加载
- cocos2d-x开发记录:二,基本概念(导演,场景,层和精灵,场景切换,效果)
- 开发记录_自学Python写爬虫程序爬取csdn个人博客信息
- 【Unity3D自学记录】C#语法笔记
- 【Unity3D自学记录】将文字复制至系统剪切板
- 【Unity3D自学记录】组合键的使用
- 【Unity3D自学记录】Debug.Log()无法正常显示解决方法
- 【Unity3D自学记录】NGUI之ButtonMessage传参
- 【Unity3D自学记录】解析XML的几种方式
- 【Unity3D自学记录】遍历父物体下所有子物体
- 【Unity3D自学记录】获取WWW下载的进度
- 【Unity3D自学记录】AssetBundles的使用