Unity & Daydream - 与其他角色对话
Unity & Daydream - Having Dialogs with other Characters
我正在通过 Unity 构建 Daydream 应用程序,有一个基本的第一人称演示,但我以前没有在 Unity 上开发过。希望将角色添加到应用程序并与他们进行对话。我正在考虑两种方式:
- 当我靠近一个角色时,该角色旁边会出现一个对话框并显示 "Hello"。
- 当我用指针指向一个字符时,它会说 "start conversation"
无论哪种情况,我都会有多个选项可供选择,例如。 "Where is X" 或 "what is your name" 等,然后根据我的选择,角色会响应其他内容,依此类推。我看不到可以在标准资产中解决这个问题的东西。是否有任何最佳实践、模板?如果没有任何想法/指示?
统一 2017.3.1f1
GVR SDK: v1.130.1
Android Studio 3.0.1
Javajdk1.8.0_162.jdk
像素 2 phone
MacBook High Sierra
按照以下步骤操作非常简单;
为角色添加碰撞器,
并在您希望 "Hello" 弹出的位置放置 3d 文本并添加这样的脚本;
public text HelloText = null;
void OnCollisionEnter(Collision collision)
{
HelloText.text.enabled = true;
}//Search more on google ; Unity 3d text.
创建一个立方体,根据需要缩放它并在其中放入文本,如 "Start Conversation"。向立方体添加一个碰撞器和这样的脚本;
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;
}
}
我正在通过 Unity 构建 Daydream 应用程序,有一个基本的第一人称演示,但我以前没有在 Unity 上开发过。希望将角色添加到应用程序并与他们进行对话。我正在考虑两种方式:
- 当我靠近一个角色时,该角色旁边会出现一个对话框并显示 "Hello"。
- 当我用指针指向一个字符时,它会说 "start conversation"
无论哪种情况,我都会有多个选项可供选择,例如。 "Where is X" 或 "what is your name" 等,然后根据我的选择,角色会响应其他内容,依此类推。我看不到可以在标准资产中解决这个问题的东西。是否有任何最佳实践、模板?如果没有任何想法/指示?
统一 2017.3.1f1
GVR SDK: v1.130.1
Android Studio 3.0.1
Javajdk1.8.0_162.jdk
像素 2 phone
MacBook High Sierra
按照以下步骤操作非常简单;
为角色添加碰撞器, 并在您希望 "Hello" 弹出的位置放置 3d 文本并添加这样的脚本;
public text HelloText = null;
void OnCollisionEnter(Collision collision)
{
HelloText.text.enabled = true;
}//Search more on google ; Unity 3d text.
创建一个立方体,根据需要缩放它并在其中放入文本,如 "Start Conversation"。向立方体添加一个碰撞器和这样的脚本;
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;
}
}