rpg学院 unity_Unity3d - RPG项目学习笔记(一)

这篇博客介绍了在Unity3d中使用NGUI制作RPG项目的过程,包括开始界面的白幕渐隐、镜头拉近、标题渐显和按键响应的实现,以及角色选择界面的搭建、角色显示及切换、输入角色名称的功能详细步骤。通过实例展示了如何利用Unity3d和NGUI插件进行游戏开发。
摘要由CSDN通过智能技术生成

通过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类读取用户输入文本即可。

今日的总结到此为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值