RPG黑暗之光02

角色创建(魔法师和剑士)

开始角色创建场景

复制场景Start并改名为tcharacter creatio

在这里插入图片描述

将tcharacter creatio场景中不要的东西,主摄像机中的Move Camera(script)代码以及UI Root中的一部分

在这里插入图片描述
在这里插入图片描述

完成角色创建界面的UI设计

将所需要的按钮素材加入图集

在这里插入图片描述
在这里插入图片描述

在UI Root中添加Sprite并在需要是按钮的Sprite上添加按钮Button Script,并点击Sprite选择自己想要的按钮素材

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在素材中找到输入名字预设物并拖入UI Root中调整至合适位置及大小

在这里插入图片描述

给按钮分别加入声音Play sound

在这里插入图片描述

设计ide状态的俩个角色

在素材中分别找出俩个人物模型拖入场景移到合适的位置

在这里插入图片描述

将默认静止的动画加到俩个人物角色身上,并将他们设为预制体

在这里插入图片描述
在这里插入图片描述

控制所有角色的创建和显示及选择

创建一个空物体并将他拖到圆盘中央
在这里插入图片描述
在这里插入图片描述
给空物体加代码CharacterCreationl,代码源码如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterCreationl : MonoBehaviour {
    public GameObject[]characterPrefabs;//数组用来存储角色
    private GameObject[] characterGameObjects;//用来存储实例化之后的角色
    private int selectedIndex = 0;//当前默认选择的角色
    private int length;//所有角色的个数

    // Use this for initialization
    void Start () {
        length = characterPrefabs.Length;
        characterGameObjects = new GameObject[length];  
        for (int i = 0; i < length; i++)
        {
            characterGameObjects[i] = GameObject.Instantiate(characterPrefabs[i], transform.position, transform.rotation) as GameObject;
        }
        UpdateCharacterShow();

    }
	
	// Update is called once per frame
	void Update () {
		
	}
    void UpdateCharacterShow()//更新所有角色的显示
    {
        characterGameObjects[selectedIndex].SetActive(true);
        for (int i = 0; i < length; i++)
        {
            if (i != selectedIndex)
            {
                characterGameObjects[i].SetActive(false);//把选择的角色设为隐藏
            }
        }
    }
    public void OnNextButtonClick()//点击下一个按钮
    {
        selectedIndex++;
        selectedIndex %= length;
        UpdateCharacterShow();//更新显示,调用UpdateCharacterShow
    }
    public void OnPrevButtonClick()//点击下一个按钮
    {
        selectedIndex--;
       if (selectedIndex == -1)
        {
            selectedIndex = length - 1;
        }
        UpdateCharacterShow();//更新显示,调用UpdateCharacterShow
    }
}

将俩角色的预制体拖入空物体中
在这里插入图片描述

分别将空物体CharacterCreationl拖入俩个按钮的on Click中,Next按钮选择OnNextButtonClick,Prev按钮选择OnPrevButtonClick

在这里插入图片描述

处理名称的输入和场景的切换

在代码CharacterCreationl中加入 OnPrevButtonClick类

 public void OnPrevButtonClick()//点击下一个按钮
    {
        selectedIndex--;
       if (selectedIndex == -1)
        {
            selectedIndex = length - 1;
        }
        UpdateCharacterShow();//更新显示,调用UpdateCharacterShow
    }
    public void OnOkButtonLilck()//加载下一个场景
    {
        PlayerPrefs.SetInt("SelectedCharacterIndex", selectedIndex);//存储选择角色
        PlayerPrefs.SetString("name", nameInput.value);//存储输入的名字
    }
}

下期继续

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值