今天没什么事,就做了一下人物角色选择界面,和大家分享一下,如果写的不好,请多多包涵。在网上参考以下,觉得这个界面挺适合的,所以直接拿来用了。如图所示:


我的思路是这样的,首先要创建一个数组,用来保存所有人物预制体,选择是通过索引值来查找的,在这里我用了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-人物角色选择相关推荐

  1. Unity3D 鼠标选择物体高光显示信息

    之前做过一个选择物体的功能, 使用的是射线检测方法, 大概原理是射线返回物体的信息,改变该物体的层, 是使用的一个Outline System插件,这个插件就是把设定层里面的物体的轮廓,显示成指定颜色 ...

  2. Unity3D人物角色描边、模型描边

    下载安装包后 导入到Unity中 找到脚本 QuickOutline 将此脚本挂到需要描边的物体上 组件介绍: Outline Mode 默认选择全部 outline All Outline Colo ...

  3. [游戏代码]求生之路插件:人物角色选择

    代码下载:https://pan.baidu.com/s/1RweUPiDNA0_TfFsBLsC_WA #define PLUGIN_VERSION "1.0 Special" ...

  4. Unity3D 2018 3.0新手入门

    Unity3D新手入门 转自擅码网并修改 学习目的: 掌握Unity3D 常用的软件操作和一些基础脚本的使用 文章目录 Unity3D新手入门 1. Unity3D软件 1.1 Unity3D 介绍 ...

  5. Unity3D入门Demo-Cube移动-触发球体-切换场景

    Unity3D入门Demo-Cube移动-触发球体-切换场景 新建Unity3D项目--选择3D类型 编写场景切换脚本ChangeScenes 添加场景切换脚本到游戏物体并保存Menu场景 新建Gam ...

  6. SketchUp模型导出为Unity3D能用的FBX

    1.新建SketchUp工程的时候,选择工程单位为Meter(米),如果不是米,则在Tools -> Model Info -> Unit内将Format修改为Decimal : Mete ...

  7. 游戏制作之路:游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比、文档及其他...

    2019独角兽企业重金招聘Python工程师标准>>> <h2 id="toc_0">UnrealEngine 4和Unity3d的选择</h2 ...

  8. 游戏引擎选择 Mac下和Windows下UnrealEngine 4体验对比

    前几天我说要学做游戏的流程,现在第一篇文章发上来,当然也同时发到我的博客了. PS:tiny允许发这种吗? UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(UE4) ...

  9. 游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对比

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前几天我 ...

  10. 游戏引擎选择、Mac下和Windows下UnrealEngine 4体验对照

    前几天我说要学做游戏的流程,如今第一篇文章发上来.当然也同一时候发到我的博客了. PS:tiny同意发这样的吗? UnrealEngine 4和Unity3d的选择 订阅了UrealEngine4(U ...

最新文章

  1. 【Spring实战】—— 3 使用facotry-method创建单例Bean总结
  2. 利用gulp,当引入文件改动时,版本号自动更新~
  3. python二元表达式总结
  4. SVM熟练到精通5:MATLAB实例
  5. ysql怎么处理百分数? “%”
  6. 【杭州云栖】飞天技术汇CDN与边缘计算专场:让内容离消费者更进一步
  7. conv2d的输入_pytorch1.0中torch.nn.Conv2d用法详解
  8. linux dma 拷贝内存数据_原来 8 张图,就可以搞懂「零拷贝」了
  9. Java基础练习之流程控制(四)
  10. ORACLE OUI 中断 do not have sufficient permissions /u01/app/oraInventory
  11. wxpython使用_wxPython学习笔记(二)
  12. php翻手册时关于一些函数参数的说明
  13. vue项目通讯录_vue组件--通讯录
  14. ArcMap通过空间校正工具转换BJ-54坐标系到WGS-84坐标系
  15. 测试基本功WEB测试之输入框测试点总结
  16. linux拔掉网线ip仍然在,openwrt 实现网线的拔插能够释放IP和重新分配IP地址
  17. Z3735d android x86,首款搭载Z3735处理器 神秘平板被曝光
  18. 动态规划——贴纸拼词
  19. 【web前端开发】CSS浮动
  20. Chino with Ciste

热门文章

  1. 【细小碎的oi小知识点总结贴】不定时更新(显然也没人看qwq)
  2. win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
  3. 如何开启QQ在线客服
  4. 兔子-蓝牙 bluetooth (二) 打开蓝牙
  5. Xcode 6 console
  6. 懒人必备神器 !一个创意十足的 Python 命令行工具
  7. delete 和 delete []的真正区别+析构函数
  8. GitHub又放大招,Python版本的植物大战僵尸还能作弊玩!
  9. 数字孪生-第二章、数字孪生技术
  10. java制作进度条,Java制作进度条