【问题标题】:How can I change/set the 3d cube clicking area?如何更改/设置 3d 立方体点击区域?
【发布时间】:2020-09-11 10:13:15
【问题描述】:

由于键盘没有按钮,我为每个数字添加了立方体,并为每个立方体附加了一个脚本,因此当点击一个立方体时,它会在顶部区域显示它的数字。

例如,当我在游戏运行时单击键 1(立方体)时,它不会触发对所有其他立方体相同的所有立方体区域的点击:

当我单击键 1 的立方体时,它仅在左侧底部区域工作,主要在该侧。即使立方体覆盖了整个关键区域。

这是我取消选中立方体网格渲染器时的样子:

然后在运行游戏并单击一个立方体时:它会在安全键盘文本(文本网格)中显示数字

这是附加到每个立方体的脚本:

using System.Collections;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEngine;

public class SecurityKeypadKeys : MonoBehaviour
{
    public TextMesh text;

    private void Start()
    {
        text = GameObject.Find("Security Keypad Text").GetComponent<TextMesh>();
    }

    private void OnMouseDown()
    {
        string[] digits = Regex.Split(transform.name, @"\D+");
        foreach (string value in digits)
        {
            int number;
            if (int.TryParse(value, out number))
            {
                text.text = value;
            }
        }
    }
}

主要问题是,在大多数立方体上,您需要单击特定点/小区域才能使其工作,我希望当您在立方体上的任何位置单击每个立方体时,它会成为工作触发器。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    尝试 robertbu code here 的 RaycastExample 并将其放在脚本中。 OnMouseDown() 不需要其他任何东西。该代码将告诉您是否有问题。此外,请尝试将所有内容移近一些,因为 OnMouseDown() 对其光线​​投射有深度限制。

    我重新创建了您上面的示例,它运行良好,所以肯定有其他问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 1970-01-01
      • 2013-01-01
      相关资源
      最近更新 更多