失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 角色游戏二(NPC对话)

角色游戏二(NPC对话)

时间:2022-12-06 18:21:09

相关推荐

角色游戏二(NPC对话)

今天我们来完成游戏中NPC的对话。 对于游戏中的NPC的对话,可以有许多方法做出来。不过这次我要介绍的是,通过碰撞OnTriggerEnter()的方法。 下面我们就来详细解刨一下代码。以下代码都是用C#写出来的。 using UnityEngine;

using System.Collections; public class Npc : MonoBehaviour {

bool flag = false, flag1, flag2; //定义三个判断的标志位

public static bool flag3; //接受任务的标志位

void Update()

{ //定义一个鼠标点击的射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //定义光线投射碰撞

RaycastHit hit; //判断是否碰撞

if (Physics.Raycast(ray, out hit))

{ //碰撞判断目标是否是NPC1

if (hit.collider.tag == "NPC1")

{ //鼠标单击事件

if (Input.GetMouseButtonDown(1))

{ //第一个标志是真。

flag = true;

} }

}

}

void OnMouseDown()

{ //第一个标志位是真。

flag = true;

}

void OnGUI()

{ // 如果标志位为真

if (flag)

{ //GUI的label中的字体大小为10. GUI.skin.label.fontSize = 10;

GUI.Box(new Rect(0, 450, 700, 200), "你好,我是诸葛神机");

GUI.Label(new Rect(0, 500, 200, 100), "能力不够去帮我采蘑菇,采完给你奖励,小心,你现在打不过哪些怪物,好了去吧,等你回来");

if (GUI.Button(new Rect(50, 450, 50, 30), "接受")) //如果单击了按钮。

{ //第一个表示为真

flag = false;

} //如果单击”关闭“按钮

else if (GUI.Button(new Rect(0, 450, 50, 30), "关闭"))

{

//标志位为真

flag = false;

}

} //如果标志位2为真

else if (flag2)

{

GUI.Box(new Rect(0, 450, 700, 200), "你好,我是诸葛神机");

GUI.Label(new Rect(0, 500, 200, 100), "好吧,看在你这么努力的份上,给你10个金币吧");

if (GUI.Button(new Rect(0, 450, 50, 30), "拒绝")) //单击拒绝按钮

{ //标志位2为真。

flag2 = false;

}

} //或者标准位3为真

else if (flag3)

{

GUI.Box(new Rect(0, 450, 700, 200), "你好,我是诸葛神机");

GUI.Label(new Rect(0, 500, 200, 100), "能力不够去帮我采蘑菇,采完给你奖励,小心,你现在打不过哪些怪物,好了去吧,等你回来");

if (GUI.Button(new Rect(0, 450, 50, 30), "关闭")) //单击关闭按钮

{ //标志位2为真

flag2 = false;

}

} }

} 注意: 以上就是NPC的对话,实现。里面用来很多标志位。再看时要仔细看清楚。 最重要的是。你不能通过按钮判断直接弹出GUI.Label里面的内容。 举个例子: if(GUI.Button(new Rect(100,200,111,222,),"确定")) { GUI.Lable(new Rect(211,121,233,123),"恭喜你过关!"); } 这段代码在OnGUI中是不能被调用的。所以要用标志位flag,完成这段GUI.Label内容的显示。 把上面的代码改一下就能出来了。 if(GUI.Button(new Rect(100,200,111,222,),"确定")) { flag=true; } if(flag) { GUI.Lable(new Rect(211,121,233,123),"恭喜你过关!"); } 这样通过标志位就完成了GUI.Label内容的显示。更多精彩内容请到: /

如果觉得《角色游戏二(NPC对话)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。