unity点击一个物体,出现一个按钮,再点击这个按钮,出现一个字幕窗口,最后点击物体,按钮窗口都消失

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity点击一个物体,出现一个按钮,再点击这个按钮,出现一个字幕窗口,最后点击物体,按钮窗口都消失相关的知识,希望对你有一定的参考价值。

unity在线急等,悬赏可添加

简单给你个思路吧:
首先处理点击了对象(obj):
1) 首先obj需要用到一个碰撞器,此处用Box Collider,一个自定义组件Controller.cs,用来检测鼠标是否点击。
2) 在obj中添加Box Collider组件,可以不用设置isTrigger,根据自己需求而定。
3) 在obj中添加Controller组件。
4) 设置obj的标签Tag为自定义标签,此处设置为”myCube”。
5) Controller组件代码如下:
void Update()

if(Input.GetButtonDown("Fire1"))


Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if(Physics.Raycast(ray,out hitInfo))

GameObject gameObj = hitInfo.transform.gameObject;
if(gameObj.transform.tag == "myCube")

//最好在这里吧对象坐标也获取到,存到变量待用;

//这里需要标识以下,实现隐藏和显示

if(!m_isShowBtn)//如果没有按钮弹出



m_isShowBtn=true;

else



m_isShowBtn=false;





注:上面是引用别人的,但原理没问题。
其次我们来处理弹出按钮和字幕,
1.首先你需要知道对象坐标,

2.然后在OnGUI函数中加入以下代码:

void OnGUI
if(m_isShowBtn)


if (GUI.Button(new Rect(x, y, w,h ),"字母框"))

//这里获取字母框,可以加个标示,比如:

m_isShowText=true;


if(m_isShowText)


//字体大小
GUI.skin.label.fontSize = 32;
//居中

GUI.skin.label.alignment = TextAnchor.MiddleCenter;
GUI.Label(new Rect(x,y, w, h), "这里是字母内容:");



解释一下,这是动态生成UI按钮,其中,x,y为按钮或文本的起始坐标,w,h为宽高,这些参数大小可以根据获取到的物体坐标来定义,或者用其他方法获取都行,自己研究一下;
自己思路随便写了以下,有BUG的话自己调一下追问

费心了,谢谢了,但是出错啊,不会改啊!!!我在360问答也问这个问题,我名字叫大号茶杯,或者果茶比卡丘,那个号金币多,您帮我在那个号解答的话,可以给您很多金币至少200金币,虽说是虚拟的,但是我只是表达感谢。

参考技术A

using UnityEngine;

using System.Collections;

public class Click : MonoBehaviour

public GameObject btn;

public GameObject kuang;

void Awake()

btn.SetActive(false);

kuang.SetActive(false);

void Update()

if (Input.GetMouseButtonDown(0))

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

RaycastHit hitInfo;

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

if (hitInfo.collider.name == "Cube")

btn.SetActive(true);

if (kuang.activeSelf && btn.activeSelf)

btn.SetActive(false);

kuang.SetActive(false);

if (btn == null)

return;

else

UIEventListener.Get(btn.gameObject).onClick = MyClick;

void MyClick(GameObject o)

kuang.SetActive(true);

按钮和对话框直接拖进去就OK ,脚本挂载Cube上

参考技术B 首先放两个按钮,一个字幕窗口,开始的时候把第二个按钮和字幕窗口都隐藏掉。
点击第一个按钮,第二个按钮出现,然后再点击第二个按钮,字幕出现。
这代码太简单。。。。。。。

以上是关于unity点击一个物体,出现一个按钮,再点击这个按钮,出现一个字幕窗口,最后点击物体,按钮窗口都消失的主要内容,如果未能解决你的问题,请参考以下文章

unity点击一个物体,在点击另一个物体,俩者交换位置

unity 鼠标点击一个物体后再点击另一个物体

unity3d如何通过一个按钮控制物体缩小和放大呢?

Unity3D点击按钮让物体变透明

Unity,NGUI如何像GUI一样,点击按钮后弹出一个窗体呢

unity3d里面 ,点击一下按钮然后自动修改人物属性数据,比如说攻击力增加等等的代码怎么编写?