miduo_client/Assets/ManagedResources/~Lua/UnityEngine/Ray.lua

62 lines
1.4 KiB
Lua

--------------------------------------------------------------------------------
-- Copyright (c) 2015 - 2016 , 蒙占志(topameng) topameng@gmail.com
-- All rights reserved.
-- Use, modification and distribution are subject to the "MIT License"
--------------------------------------------------------------------------------
local rawget = rawget
local setmetatable = setmetatable
local Vector3 = Vector3
local Ray =
{
direction = Vector3.zero,
origin = Vector3.zero,
}
local get = tolua.initget(Ray)
Ray.__index = function(t,k)
local var = rawget(Ray, k)
if var == nil then
var = rawget(get, k)
if var ~= nil then
return var(t)
end
end
return var
end
Ray.__call = function(t, direction, origin)
return Ray.New(direction, origin)
end
function Ray.New(direction, origin)
local ray = {}
ray.direction = direction:Normalize()
ray.origin = origin
setmetatable(ray, Ray)
return ray
end
function Ray:GetPoint(distance)
local dir = self.direction * distance
dir:Add(self.origin)
return dir
end
function Ray:Get()
local o = self.origin
local d = self.direction
return o.x, o.y, o.z, d.x, d.y, d.z
end
Ray.__tostring = function(self)
return string.format("Origin:(%f,%f,%f),Dir:(%f,%f, %f)", self.origin.x, self.origin.y, self.origin.z, self.direction.x, self.direction.y, self.direction.z)
end
UnityEngine.Ray = Ray
setmetatable(Ray, Ray)
return Ray