团结与白日梦 - 与其他角色对话

时间:2018-03-26 23:22:25

标签: unity3d virtual-reality daydream

我正在通过Unity构建一个Daydream应用程序,有一个基本的第一人称演示工作,但我之前没有在Unity上开发过。希望在应用程序中添加字符并与它们对话。我正在考虑两种方式:
1-当我接近一个角色时,会在该角色旁边出现一个对话框,并说出#34;你好"。
2-当我用指针指向一个角色时,它会说"开始对话"

在任何一种情况下,我都会有多种选择,例如。 " X"或者"你叫什么名字"等等,根据我的选择,角色会用别的东西回应,等等。我无法看到能够在标准资产中解决这个问题的东西。有没有最好的做法,围绕这个模板?如果没有任何想法/方向?

Unity 2017.3.1f1 GVR SDK:v1.130.1 Android Studio 3.0.1 Java jdk1.8.0_162.jdk Pixel 2手机 MacBook High Sierra

1 个答案:

答案 0 :(得分:0)

按照以下步骤操作非常简单;

为角色添加一个对撞机, 并在你想要“Hello”的位置放置一个3d文本,然后添加这样的脚本;

public text HelloText = null;

void OnCollisionEnter(Collision collision)
{
   HelloText.text.enabled = true;
}//Search more on google ; Unity 3d text.

根据需要创建一个立方体缩放比例,并在其中放置一个文本,如“开始对话”。将一个碰撞器添加到多维数据集和这样的脚本;

  void OnMouseDown()
    {
        //Create dialog boxes LIKE THIS.
    }

这不是完美的方式。如果你是新手,这可能是你的最佳选择。

您可以创建由立方体和文本组成的预制件。然后你可以通过脚本设置它们的值。

编辑:

创建一个空的游戏对象并将此脚本附加到它。 然后将3rdPersonController游戏对象放入空游戏对象脚本中的空游戏对象插槽

示例:

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

public class AScriptName: MonoBehaviour {

 public GameObject PlayerController = null;
 TextMesh DialogBox = null;

void Start()
{

//Note: Attach your 3d text to your 3rdPersonController in the editor..

DialogBox = PlayerController.GetComponentInChildren(typeof(TextMesh)) as TextMesh;

DialogBox.text = "Start Conversation";

//or you can pass a string value;
//Example string text = "Start Conversation"; DialogBox.text = text;

}

}