通过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项目学习笔记(一)的更多相关文章

  1. Unity3D之UGUI学习笔记(一):UGUI介绍以及Canvas

    UGUI是Unity3D4.6官方提供的UI系统,支持2D和3D UI的开发. Unity3D UI史 OnGUI 在Unity4.6之前,官方提供的是OnGUI函数来开发UI界面,当然问题也比较多, ...

  2. java maven、springmvc、mybatis 搭建简单Web项目学习笔记

    前言: 空余的时间,学学 Java,没准哪天用的到: 环境搭建折腾了好几天,总算搞顺了,也做个学习笔记,以防后面会忘记: 一.安装文件及介绍 JDK:jdk1.8.0 77 eclipse-maven ...

  3. Unity3D之移植学习笔记:移植到Android平台更好的方法

    接上文,之前我们采用了直接将Unity项目导出为Eclipse项目来修改的方式,这种做法存在的一个最大的问题就是:每当Unity被修改之后,都需要重新导出,而每次导出的项目在Android平台方面的J ...

  4. Unity3D之UGUI学习笔记(三):EventSystem

    在UGUI中,EventSystem实现了所有关于交互方面的功能,和NGUI不一样的地方是,我们终于可以摆脱添加Box Collider了! 下面我们来学习一下. 对于按钮来说,直接有onClick的 ...

  5. 【音乐App】—— Vue-music 项目学习笔记:用户个人中心开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌曲列表 收藏歌曲 一.用 ...

  6. 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...

  7. 【音乐App】—— Vue-music 项目学习笔记:搜索页面开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 搜索歌手歌曲 搜索历史保存 ...

  8. 【音乐App】—— Vue-music 项目学习笔记:歌单及排行榜开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 歌单及详情页 排行榜及详情 ...

  9. 【音乐App】—— Vue-music 项目学习笔记:播放器内置组件开发(二)

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 播放模式切换 歌词滚动显示 ...

随机推荐

  1. JS使用百度地图API

    尚未整理: <script type="text/javascript"> var map = new BMap.Map("dituContent" ...

  2. Partition does not end on cylinder boundary

    fdisk可能会报该消息. DOS/Win95要求分区对齐到cyclinder boundary以适应CHS寻址. 然而现代OS都使用LBA寻址. 使用c命令关闭DOS兼容性检查. 使用u命令切换分区 ...

  3. C语言每日一题之No.8

    正式面对自己第二天,突然一种强烈的要放弃的冲动,在害怕什么?害怕很难赶上步伐?害怕这样坚持到底是对还是错?估计是今天那个来了,所以身体激素有变化导致情绪起伏比较大比较神经质吧(☆_☆)~矮油,女人每个 ...

  4. 《黄聪:手机移动站SEO优化教程》4、如何实现手机移动网站和PC站点的自主适配

    视频地址:http://www.tudou.com/programs/view/v4Hur5vjav4/ 1.自主适配 A:站点自己做好PC与手机之间的适配,以及手机站各个版式之间的适配.当手机用户通 ...

  5. javascript世界一等公民—函数

    简介 在很多传统语言(C/C++/Java/C#等)中,函数都是作为一个二等公民存在,你只能用语言的关键字声明一个函数然后调用它,如果需要把函数作为参数传给另一个函数,或是赋值给一个本地变量,又或是作 ...

  6. PLSQL_Oracle临时表Temporary Table基本概念和用法(概念)

    2014-06-08 Created By BaoXinjian

  7. mysql server has gone away 与max_allowed_packed

    今天在本地测试测试给所有店铺批量发信息的功能,大约2万条记录,在本地和备用linux服务器上测试都没有问题,但上windows时一直报mysql server has gone away的错误,搜索一 ...

  8. UCOS-信号标志组(学习笔记)

    信号标志组即根据各任务的信号进行逻辑运算,根据逻辑运算的结果决定是否进行.发送方指定向那个标志组的哪一位(响应位等于1表明向哪一位发)发1还是0.等待逻辑结果的任务指定等待那个标志组的哪几位.这几位按 ...

  9. RVMDK的DEBUG调试-实时数据查看

    无论在Simulation还是硬件仿真的情况下,View-period windows update后watch窗口添加的变量即可实时更新, 软仿真和硬件仿真的区别就是实际时间的差异:如RTC查看秒的 ...

  10. laravel加入验证码类几种方法 && Laravel引入第三方库的方法

    1,使用require , inlcude 的方法将验证码类文件包含进来,再进行new 2,将验证码类文件放于Http目录下面,也就是和控制器controller放在一个目录下面,在验证码类文件中加上 ...