内容纲要

1.实现玩家和NPC对话功能

1.首先在Hiearchy面板中创建一个UI,然后再canvas下面去添加一个plane画布用来控制显示,然后再plane下面在创建两个文本,用来实现角色的名字和故事对话,然后再给plane添加脚本实现用来显示文本框的方法。实现代码如下:

using UnityEngine.UI;
public class duiahukag : MonoBehaviour {

    void Start () {

    }
    public void ShowText(string name,string conte)//用来获取显示文本的
    {
        transform.GetChild(0).GetComponent<Text>().text = name;//获取对象下面的附物体第一个
        transform.GetChild(1).GetComponent<Text>().text = conte;//第二个

    }
}

file
2.然后再给canvas添加一个脚本,这个脚本实现一个对话的功能,实现代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Say//创建一个说话的类
{
    public string name;
    public string conte;

}
public class chat : MonoBehaviour {
    public duiahukag wenKang;//要关联到刚刚用来显示的对话框文本建立的类,在untiy中会显示出来将显示文本的方法拖入到canvas下面。
    //private bool curdex;//是否开启显示对话框
    Say[] says;//创建一个数组
    private int index = 0;//数组的索引
    void Start () {
        Say say = new Say() { name = "酒剑仙", conte = "男人光帅有有什么用,要么能文,要么能武。" };
        Say say1 = new Say() { name = "酒剑仙", conte = "道是什么......" };
        Say say2 = new Say() { name = "酒剑仙", conte = "心中有道,便是道!" };
        says = new Say[] { say, say1, say2 };
    }

    void Update () {

            if (Input.GetMouseButtonDown(0)||Input .GetKeyDown(KeyCode.Space ) )
            {
                if (index < says.Length)//如果索引小于数组的元素
                {
                    Say say = says[index++];//将索引++
                    wenKang.ShowText(say.name, say.conte);//文本显示
                }
            }

    }
}

3.然后必须将canvas下面将这个plane,拖入里面与之关联如图:
file
file
4.最后实现玩家与NPC碰撞触发显示,如果碰撞的是NPC将其显示,在NPC下面添加脚本,添加碰撞器,显示文本的对话,
file
实现代码如下:

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

public class chufashijian : MonoBehaviour {
    public GameObject jueNpc;//在untiy中显示,给NPC拖入显示文本框的方法
    public  void OnTriggerEnter2D(Collider2D collison)
    {
        if(collison.tag =="sence1")
        {
            jueNpc.SetActive(true);
        }
    }
    public void OnTriggerExit2D(Collider2D  collison)
    {
        if(collison .tag=="sence1")
        {
            jueNpc.SetActive(false);
        }
    }
}

1 对 “rpg 游戏开发进程”的想法;

  1. Pingback: viagra online

发表评论