1. I've been trying for several hours to convert a string to a Vector3, but with no luck. I'm guessing I'm doing something horribly wrong to cause this.

    Code:
    function parseVector3(sourceString)
     
        local outString = string
        local outVector3 = UnityEngine.Vector3
        local splitString = string
      
        outString = string.sub(sourceString, 1, -14)
      
        splitString = string.rep(outString, 1, ",")   
      
        outVector3.x = tonumber(splitString[0])
        outVector3.y = tonumber(splitString[1])
        outVector3.z = tonumber(splitString[2])
        
        
        return outVector3
    end
     
  2. Wulf

    Wulf Community Admin

    new Vector3(outVector3.x, outVector3.y, outVector3.z)
     
  3. Code:
    function parseVector3(sourceString)
     
        local outString = string
        local outVector3 = UnityEngine.Vector3
        local splitString = string
      
        outString = string.sub(sourceString, 1, -14)
      
        splitString = string.rep(outString, 1, ",")   
      
        outVector3.x = tonumber(splitString[0])
        outVector3.y = tonumber(splitString[1])
        outVector3.z = tonumber(splitString[2])
        
        local output = new Vector3(outVector3.x, outVector3.y, outVector3.z)
        return output
    end
    That returns the error:
    "attempt to call global 'Vector3' (a nil value)"
     
  4. Wulf

    Wulf Community Admin

    Oh right... Lua. I can't recall how to do it with Lua. Perhaps something like:
    Code:
    local vector3 = Vector3:new(outVector3.x, outVector3.y, outVector3.z)
     
  5. Same error.
     
  6. maybe this ?
    Code:
    vector = Utils.Vector3();
    vector.x = outVector3.x;
    vector.y = outVector3.y;
    vector.z = outVector3.z;
     
  7. Code:
    function parseVector3(sourceString)
     
        local outString = string
        local outVector3 = Utils.Vector3()
        local splitString = string
      
        outString = string.sub(sourceString, 1, -14)
      
        splitString = string.rep(outString, 1, ",")   
          outVector3.x = tonumber(splitString[0])
        outVector3.y = tonumber(splitString[1])
        outVector3.z = tonumber(splitString[2])
        
        local output = Vector3:new(outVector3.x, outVector3.y, outVector3.z)
        return output
        
    end
     
    attempt to index global 'Utils' (a nil value)
     
  8. Maybe this one?
    Code:
    function parseVector3(sourceString)
     
        local outString = string
        local outVector3 = new( UnityEngine.Vector3._type , nil )
        local splitString = string
     
        outString = string.sub(sourceString, 1, -14)
     
        splitString = string.rep(outString, 1, ",")
         outVector3.x = tonumber(splitString[0])
        outVector3.y = tonumber(splitString[1])
        outVector3.z = tonumber(splitString[2])
     
        return outVector3
     
    end