c#如何传送到我想要的地方

时间:2017-03-13 17:08:25

标签: c#

如何传送到我想要的地方?例如像这样,

else if (this.inputLine.StartsWith("/teleport"))


 ...............................  transform.position = new Vector3(71,79,-79);




 how to put 71,79,-79 after command? so like this,
  else if (this.inputLine.StartsWith("/teleport 71 79 -79"));

use (Convert.ToInt32(this.inputLine.Remove(0, 3))???? how? please help me

1 个答案:

答案 0 :(得分:1)

您不会在问题中提供太多信息,但是从您的代码中我假设如下:

  1. 您正在使用Unity3D
  2. 您有一个文本输入控件,允许用户输入命令。
  3. 您的if-else块会循环显示所有可能的命令并完成所需的操作。
  4. 在这种情况下,您希望传送到游戏中与用户输入" / teleport"后输入的值相匹配的位置。
  5. 我建议使用字符串输入并缩短它,然后使用' '分隔符解析剩余的字符串。 这将为您提供带有矢量值的字符串数组。 接下来,将此数组中的每个字符串转换为int,然后您可以将这些int分配给用于确定新位置的变量。

    例如:

    // Input: /teleport 30 146 18
    
    else if (this.inputLine.StartsWith("/teleport")
    {
        // Gets what the user typed.
        string input = inputLine.Text;
        // Removes the "/teleport" part of string.
        string vectorString = input.Substring(8);
        // Splits the remaining string into an array of values using ' ' delimiter.
        string[] va = vectorString.Split(' ');
        // Converts values from string to int.
        int x = Convert.ToInt32(va[0]);
        int y = Convert.ToInt32(va[1]);
        int z = Convert.ToInt33(va[2]);
        // Changes the position using these ints.
        transform.position = new Vector3(x, y, z);
    }
    

    作为创建子字符串的替代方法,您可以拆分字符串,然后避免使用数组的第一个元素,而是将元素2,3和4分配给整数。