Unity3d - RPG项目学习笔记(一)
通过NGUI和工程素材,学习泰课项目——黑暗之光。
现阶段心得整理:
一、开始界面
开始界面显示顺序为:①白幕渐隐;②镜头拉近;③标题渐显;④按键响应。
1.1 白幕渐隐
NGUI是一个非常强大的插件,将图形文件打包为Atlas后,添加纯白白幕;之后设定白幕Alpha值从255到0,实现白幕渐隐的效果;
1.2 镜头拉近
在调整好镜头的位置后,通过脚本中transform.translate(Vector3.forward*Time.deltaTime)对镜头Z轴进行调整,判断条件为if(transfrom.position.z >= cameraEnd);
1.3 标题渐显
同1.1的白幕渐隐效果,需要将标题的Alpha值从0调整到255,但是注意:需要在导入后将Alpha值先调整为0,否则会出现“显 隐 显”的BUG;
NGUI提供了pingpang效果,选择后实现标题提示语句的pingpang提示;
1.4 按键响应
同样使用NGUI提供的功能,对导入的图形上Attach上BoxCollider标签,然后Attach上ButtonScript,在OnClick上加入需要响应的GameObject的方法;
二、角色选择界面
角色选择界面需要实现的功能有:①选择界面搭建;②角色的显示及切换;③输入角色名称
2.1 选择界面搭建
同样使用NGUI提供的Button功能,完成Next、Pres按键的导入;
2.2 角色的显示及切换
该功能其实包含了三方面,显示、条件显示及切换。
①角色的显示
将人物角色模型绑定Idle动作,预制成为Prefabs,共有两个人物模型,命名为“C1”“C2”,并在场景中设定角色生产位置,命名为“CPosition”;
在CPosition上添加脚本,脚本主体如下:
public GameObjects[] GameCharacters; //定义一个GameObject数组,后续将C1、C2添加进去
private int Length; //定义GameObject的长度
void Start()
{
Length = GameCharacters.Length;
for(int i = 0; i < Length ; i ++)
{
GameObjects[i] = GameObject. Instantiate(GameObject[i],transform.position,transform.rotation) as GameObject; //实例化角色模型至场景
}
}
② 角色的条件显示
经上述脚本,因为执行的是for循环,将两个模型全部显示在了场景中,所以需要对角色显示添加甄别方法
代码思路,添加角色代码CharacterIndex,添加方法只显示目标CharacterIndex的模型;
private Int CharacterIndex = 0;
void CharacterSelect()
{
GameObjects[CharacterIndex].setActive(true); //首先将目标角色显示状态定义为True,如果漏掉这一句的话,一个循环后,你家模型就都被隐藏了
for(int i = 0; i < Length ; i++)
{
if(i != CharacterIndex)
{
GameObjects[i].setActive(false); //将目标角色以外模型全部隐藏掉
}
}
}
然后在Start方法最后加入 CharacterSelect( ) 调用就可以了。
③切换
通过上述方法,我们的场景中现在只有一个模型了(实际上是两个,一个被隐藏了)。而且可以根据CharacterIndex进行角色选择,那么加入对CharacterIndex的控制方法就可以实现对角色的切换了。
public void OnNextButton( ) //注意此处使用了public修饰,因为这个方法得绑到按键上去生效用的
{
CharacterIndex++; //标示数字加1
if(CharacterIndex >= Length)
{
CharacterIndex -= Length; //如果索引超界限,回归至索引序列1
}
}
同理,添加一个OnPresButton方法,限制条件为 (if CharacterIndex < 0){ CharacterIndex = Length - 1; }
将上述方法绑到按钮上,便实现了角色的切换。
2.3 角色名的输入
通过NGUI添加SimpleText模块,通过PlayerPrefabs类读取用户输入文本即可。
今日的总结到此为止。
Unity3d - RPG项目学习笔记(一)的更多相关文章
- Unity3D之UGUI学习笔记(一):UGUI介绍以及Canvas
UGUI是Unity3D4.6官方提供的UI系统,支持2D和3D UI的开发. Unity3D UI史 OnGUI 在Unity4.6之前,官方提供的是OnGUI函数来开发UI界面,当然问题也比较多, ...
- java maven、springmvc、mybatis 搭建简单Web项目学习笔记
前言: 空余的时间,学学 Java,没准哪天用的到: 环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记: 一.安装文件及介绍 JDK:jdk1.8.0 77 eclipse-maven ...
- Unity3D之移植学习笔记:移植到Android平台更好的方法
接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...
- Unity3D之UGUI学习笔记(三):EventSystem
在UGUI中,EventSystem实现了所有关于交互方面的功能,和NGUI不一样的地方是,我们终于可以摆脱添加Box Collider了! 下面我们来学习一下. 对于按钮来说,直接有onClick的 ...
- 【音乐App】—— Vue-music 项目学习笔记:用户个人中心开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌曲列表 收藏歌曲 一.用 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...
- 【音乐App】—— Vue-music 项目学习笔记:搜索页面开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 搜索歌手歌曲 搜索历史保存 ...
- 【音乐App】—— Vue-music 项目学习笔记:歌单及排行榜开发
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌单及详情页 排行榜及详情 ...
- 【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(二)
前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 播放模式切换 歌词滚动显示 ...
随机推荐
- 【linux】top命令详解
常用命令 top -d 3 ##每3秒监控一次 [root@TG1704 log]# top top - 14:06:23 up 70 days, 16:44, 2 users, load avera ...
- css中的继承、层叠、样式优先级机制
一.继承与层叠:
- log4net 部署到服务器之后 无法记录日志问题 解决方法
通常情况下无法记录日志的原因是:权限问题 1. 右键该站点的程序文件夹>>安全 2. 找到 IIS_IUSR 用户,然后编辑权限 允许修改,保存即可 3. 搞定
- bzoj2289: 【POJ Challenge】圆,圆,圆
Description 1tthinking随便地画了一些圆. ftiasch认为这些圆有交集(面积非零)的可能性不大.因为他实在画了太多圆,所以你被请来判断是否存在交集. Input 第1行,一个整 ...
- 建立一个node.js服务器(使用express搭建第一个Web环境)
一.官网下载node.js 下载地址:https://nodejs.org/en/download/ 根据向导,下一步安装就可以了! 二.使用express搭建Web环境 express是一个开源的n ...
- [Android Studio 1A] – 插件
关于android studio插件的使用,一直没有好的机会来研究,最近项目开发中需要统计项目的代码行数,所以就需要一个代码统计的插件.我选择的是 Statistic,下载地址是:https://pl ...
- VALGRIND
系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦.所以,在实践中会用到很多工具来 ...
- 0808HTML
打开DREAMWEAVER,新建HTML,页面上有几句代码 <html>开始标签 <head>网页上的控制信息 <title>页面标题</title> ...
- Logs
syslogs Fortinet: http://docs.fortinet.com/fgt.html
- 使用C#的is和as操作符来转型
开发人员经常需要将一个对象从一种类型转换为其他各种类型.C#不要求任何特殊语法即可将一个对象转换为它的任何基类型,因为向基类型的转换被认为是一种安全的隐式转换.然而,将对象转换为它的某个派生类型时,C ...