Unity3D-人物角色选择
今天没什么事,就做了一下人物角色选择界面,和大家分享一下,如果写的不好,请多多包涵。在网上参考以下,觉得这个界面挺适合的,所以直接拿来用了。如图所示:
我的思路是这样的,首先要创建一个数组,用来保存所有人物预制体,选择是通过索引值来查找的,在这里我用了2个人物预制体,并把它们存储到创建的数组中。如下图所示:
接下来就是关于算法的分析,
1. 第一种是通过求余(Selectindex %Array.Length),
2. 第二种是判断数组索引值的大小。
先说第一种吧,也是我用的这种,在跳转到人物选择界面显示的时候,会出来一个人物角色,也就是默认的人物角色,在这里我是把数组中第一个元素,作为了默认角色,所以在单击左右箭头选择时,索引值会发生加减变化,求余就会得到一个值,查找索引就可以查找得到对应的人物角色。需要注意的是,在执行加操作时,索引值变化可以不用管,因为索引值变化不会超出数组的范围,而执行减操作时,需要做一个判断,当索引减到小于0时,直接把索引值设置为Array.Length-1,实现人物角色循环选择。核心的代码如下:
//当我们点击了下一个按钮public void OnNextButtonClick() {selectedIndex++;selectedIndex %= length;//查找CharacterShow();}//当我们点击了上一个按钮public void OnPrevButtonClick() {selectedIndex--;if (selectedIndex == -1) {selectedIndex = length - 1;}CharacterShow();}
第二种方法,其实和第一种本质上是一致的,都是对索引值进行操作,只是形式上不同,
核心代码如下:
if (Input.GetKeyDown(KeyCode.A)) { index += 1; if(index>=character.Length) { index = 0; } CharacterShow(index); } if (Input.GetKeyDown(KeyCode.D)) { index -= 1; if (index < 0) { index = character.Length-1; } CharacterShow(index); }
对第二种方法感兴趣的,可以去这里看http://blog.csdn.net/alayeshi/article/details/44855757
好了,差不多就这些了,最后贴一下我的代码:
public GameObject[] characterPrefabs;//创建一个人物预制体数组,存储人物角色private int selectedIndex = 0;//创建选择索引的变量// Use this for initializationvoid Start () {//调用显示人物角色的方法CharacterShow();}//查找并显示对应的人物角色 void CharacterShow() {characterPrefabs[selectedIndex].SetActive(true);//显示对应索引的人物预制体//通过循环隐藏不对应索引的预制体for (int i = 0; i < length; i++) {if (i != selectedIndex) {characterPrefabs[i].SetActive(false);//把未选择的角色设置为隐藏}}}//当我们点击了下一个按钮public void OnNextButtonClick() {selectedIndex++;selectedIndex %= length;CharacterShow();}//当我们点击了上一个按钮public void OnPrevButtonClick() {selectedIndex--;if (selectedIndex == -1) {selectedIndex = length - 1;}CharacterShow();}
Unity3D-人物角色选择相关推荐
- Unity3D 鼠标选择物体高光显示信息
之前做过一个选择物体的功能, 使用的是射线检测方法, 大概原理是射线返回物体的信息,改变该物体的层, 是使用的一个Outline System插件,这个插件就是把设定层里面的物体的轮廓,显示成指定颜色 ...
- Unity3D人物角色描边、模型描边
下载安装包后 导入到Unity中 找到脚本 QuickOutline 将此脚本挂到需要描边的物体上 组件介绍: Outline Mode 默认选择全部 outline All Outline Colo ...
- [游戏代码]求生之路插件:人物角色选择
代码下载:https://pan.baidu.com/s/1RweUPiDNA0_TfFsBLsC_WA #define PLUGIN_VERSION "1.0 Special" ...
- Unity3D 2018 3.0新手入门
Unity3D新手入门 转自擅码网并修改 学习目的: 掌握Unity3D 常用的软件操作和一些基础脚本的使用 文章目录 Unity3D新手入门 1. Unity3D软件 1.1 Unity3D 介绍 ...
- Unity3D入门Demo-Cube移动-触发球体-切换场景
Unity3D入门Demo-Cube移动-触发球体-切换场景 新建Unity3D项目--选择3D类型 编写场景切换脚本ChangeScenes 添加场景切换脚本到游戏物体并保存Menu场景 新建Gam ...
- SketchUp模型导出为Unity3D能用的FBX
1.新建SketchUp工程的时候,选择工程单位为Meter(米),如果不是米,则在Tools -> Model Info -> Unit内将Format修改为Decimal : Mete ...
- 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他...
2019独角兽企业重金招聘Python工程师标准>>> <h2 id="toc_0">UnrealEngine 4和Unity3d的选择</h2 ...
- 游戏引擎选择 Mac下和Windows下UnrealEngine 4体验对比
前几天我说要学做游戏的流程,现在第一篇文章发上来,当然也同时发到我的博客了. PS:tiny允许发这种吗? UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(UE4) ...
- 游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前几天我 ...
- 游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对照
前几天我说要学做游戏的流程,如今第一篇文章发上来.当然也同一时候发到我的博客了. PS:tiny同意发这样的吗? UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(U ...
最新文章
- 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
- 利用gulp,当引入文件改动时,版本号自动更新~
- python二元表达式总结
- SVM熟练到精通5:MATLAB实例
- ysql怎么处理百分数? “%”
- 【杭州云栖】飞天技术汇CDN与边缘计算专场:让内容离消费者更进一步
- conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解
- linux dma 拷贝内存数据_原来 8 张图,就可以搞懂「零拷贝」了
- Java基础练习之流程控制(四)
- ORACLE OUI 中断 do not have sufficient permissions /u01/app/oraInventory
- wxpython使用_wxPython学习笔记(二)
- php翻手册时关于一些函数参数的说明
- vue项目通讯录_vue组件--通讯录
- ArcMap通过空间校正工具转换BJ-54坐标系到WGS-84坐标系
- 测试基本功WEB测试之输入框测试点总结
- linux拔掉网线ip仍然在,openwrt 实现网线的拔插能够释放IP和重新分配IP地址
- Z3735d android x86,首款搭载Z3735处理器 神秘平板被曝光
- 动态规划——贴纸拼词
- 【web前端开发】CSS浮动
- Chino with Ciste
热门文章
- 【细小碎的oi小知识点总结贴】不定时更新(显然也没人看qwq)
- win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
- 如何开启QQ在线客服
- 兔子-蓝牙 bluetooth (二) 打开蓝牙
- Xcode 6 console
- 懒人必备神器 !一个创意十足的 Python 命令行工具
- delete 和 delete []的真正区别+析构函数
- GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!
- 数字孪生-第二章、数字孪生技术
- java制作进度条,Java制作进度条