RPG黑暗之光Part2:角色创建
1.Part1创建完成继续进行角色创建过程中出现一点问题,在角色导入的时候贴图丢失了。这直接导致强迫症的我跑去学习了3dmax的相关知识,结果一波三折最终还是用下面讲到的方法解决了。闲话不多说开始今天的角色创建,在上一个场景直接ctrl+d复制一个就行了。删除角色创建中不需要的UI控件和脚本即可。
2.接下来调整摄像机位置到合适位置创建UI控件这里用到的方法基本和上一章一样,这里不详细讲解了。在合适位置新建空对象用来产生游戏人物即可,最终完成这个效果即可。
3.在CharacterSpawn中新建脚本用来控制场景跳转和按键响应方法,我们用selectIndex来控制角色上下调整,由于prefabs文件夹中内容没有被初始创建,所以我们要通过Instantiate方法创建对象。将prefabs中的两个角色拖到unity窗口里的脚本内即可。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterCreation : MonoBehaviour {
public GameObject[] character;
private int length;
private int selectIndex = 0;
public UIInput nameInput;
private void Start()
{
int count = 0;
length = character.Length;
foreach(GameObject x in character)
{
character[count] = Instantiate(x, transform.position, transform.rotation);
count++;
}
ShowCharacter();
}
public void OnNextButton()
{
selectIndex++;
if (selectIndex == length)
{
selectIndex = 0;
}
ShowCharacter();
}
public void OnPreButton()
{
selectIndex--;
if (selectIndex < 0)
{
selectIndex = length - 1;
}
ShowCharacter();
}
public void OnOkButton()
{
string name = nameInput.value;
PlayerPrefs.SetString("name", name);
PlayerPrefs.SetInt("selectIndex", selectIndex);
}
private void ShowCharacter()
{
for(int i = 0; i < length; i++)
{
character[i].SetActive(false);
if (i == selectIndex)
{
character[i].SetActive(true);
}
}
}
}
4.最后设置一下按钮声音调试一下即可。