wiki.sine.space | sinespace

Scripting/SLineRenderer

From wiki.sine.space
Revision as of 09:16, 25 March 2022 by Voidtech (Talk | contribs)

Jump to: navigation, search

Public Member Functions

SetPosition

void SetPosition (int index, SVector position);

Set the position of a vertex in the line.


--this object will continuously render a line between two different game objects

refObject1 = Space.Host.GetReference("object1") --Add in References section of Scripting Runtime Component
refObject2 = Space.Host.GetReference("object2") --Add in References section of Scripting Runtime Component

thisObject = Space.Host.ExecutingObject

function OnUpdateFunction()
  thisObject.LineRenderer.PositionCount = 2 --this is necessary 

  thisObject.LineRenderer.SetPosition(1,refObject1.WorldPosition)
  thisObject.LineRenderer.SetPosition(2,refObject2.WorldPosition)

end

thisObject.OnUpdate(OnUpdateFunction)

GetPosition

SVector GetPosition (int index);

Get the position of a vertex in the line


SetPositions

void SetPositions (SVector[] positions);

Set the positions of all vertices in the line.


--this object will continuously render a line between two different game objects

refObject1 = Space.Host.GetReference("object1") --Add in References section of Scripting Runtime Component
refObject2 = Space.Host.GetReference("object2") --Add in References section of Scripting Runtime Component

thisObject = Space.Host.ExecutingObject

function OnUpdateFunction()
  thisObject.LineRenderer.PositionCount = 2 --this is necessary
  thisObject.LineRenderer.SetPositions({refObject1.WorldPosition,refObject2.WorldPosition})

end

thisObject.OnUpdate(OnUpdateFunction)

GetPositions

[[Scripting/SVector[]|SVector[]]] GetPositions ();

description


SetWidth

void SetWidth (float start, float end);

Set width at start and end


--the below script will make a slider set both the Line Renderer's Start Width and End Width
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component



OVC = function()
  local width = (refSlider.UISlider.Value * 5)  -- from 0 to 5
  refLineRenderer.LineRenderer.SetWidth(width,width)
end

refSlider.UISlider.OnValueChanged(OVC)

SetColors

void SetColors (SColor start, SColor end);

Set color at start and end (Line shader necessary)


--clicking the object will open a color picker that changes both Line Renderer's Start Color and End Color

thisGameObject = Space.Host.ExecutingObject
originalStartColor = thisGameObject.LineRenderer.StartColor
originalEndColor = thisGameObject.LineRenderer.EndColor

OnChange = function(SColor) 
  thisGameObject.LineRenderer.SetColors(SColor,SColor) 
end

OnSelect = function(SColor)
    thisGameObject.LineRenderer.SetColors(SColor,SColor) 
end

OnCancel = function()
   thisGameObject.LineRenderer.SetColors(originalStartColor,originalEndColor) 
end

OnClick = function()
  Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, originalStartColor)
end


thisGameObject.AddClickable()
thisGameObject.Clickable.OnClick(OnClick)


Properties

Enabled

bool Enabled { get;set; }

Makes the renderer visible if enabled.


--clicking this object toggles it's LineRenderer component On/Off

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.Enabled =  not thisObject.LineRenderer.Enabled
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

ReceiveShadows

bool ReceiveShadows { get;set; }

Enable this option to make the line display any shadows that are cast upon it.


--clicking this object toggles it's Recieve Shadows options

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.ReceiveShadows =  not thisObject.LineRenderer.ReceiveShadows
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

IsVisible

bool IsVisible { get; }

To check if this renderer is visible.


CastShadows

bool CastShadows { get;set; }

Specify if and how the line casts shadows when a suitable Light shine on it.


--clicking this object toggles between it's cast shadows option

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.CastShadows =  not thisObject.LineRenderer.CastShadows
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

MotionVectors

bool MotionVectors { get;set; }

Specifies whether this renderer has a per-object motion vector pass. If set to true, this object will have a per-object motion vector pass rendered


UseLightProbes

bool UseLightProbes { get;set; }

The light probe interpolation type.


--clicking this object toggles it's Light Probe between Off and Blend Mode

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.UseLightProbes =  not thisObject.LineRenderer.UseLightProbes
end

thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

StartWidth

float StartWidth { get;set; }

Set the width at the start of the line.


--the below script will make a slider change the Line Renderers start width


thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.StartWidth / 2 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.StartWidth = (refSlider.UISlider.Value * 2)  -- from 0 to 2
end

refSlider.UISlider.OnValueChanged(OVC)

EndWidth

float EndWidth { get;set; }

Set the width at the end of the line.


--the below script will make a slider change the Line Renderer's End Width
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.EndWidth / 2 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.EndWidth = (refSlider.UISlider.Value * 2)  -- from 0 to 2
end

refSlider.UISlider.OnValueChanged(OVC)

WidthMultiplier

float WidthMultiplier { get;set; }

Set an overall multiplier that is applied to the LineRenderer.widthCurve to get the final width of the line.


--the below script will make a slider change the Line Renderer's Width Multiplier
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.WidthMultiplier / 5 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.WidthMultiplier = (refSlider.UISlider.Value * 5)  -- from 0 to 5
end

refSlider.UISlider.OnValueChanged(OVC)

StartColor

SColor StartColor { get;set; }

Set the color at the start of the line.


--clicking the object will open a color picker that changes the Line Renderer's Start Color

thisGameObject = Space.Host.ExecutingObject
originalColor = thisGameObject.LineRenderer.StartColor

OnChange = function(SColor) 
  thisGameObject.LineRenderer.StartColor = SColor
end

OnSelect = function(SColor)
  thisGameObject.LineRenderer.StartColor = SColor
end

OnCancel = function()
  thisGameObject.LineRenderer.StartColor = originalColor
end

OnClick = function()
  Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, originalColor)
end


thisGameObject.AddClickable()
thisGameObject.Clickable.OnClick(OnClick)

EndColor

SColor EndColor { get;set; }

Set the color at the end of the line.


--clicking the object will open a color picker that changes the Line Renderer's End Color

thisGameObject = Space.Host.ExecutingObject
originalColor = thisGameObject.LineRenderer.EndColor

OnChange = function(SColor) 
  thisGameObject.LineRenderer.EndColor = SColor
end

OnSelect = function(SColor)
  thisGameObject.LineRenderer.EndColor = SColor
end

OnCancel = function()
  thisGameObject.LineRenderer.EndColor = originalColor
end

OnClick = function()
  Space.Dialogues.ColorPicker("title","okbutton", OnChange, OnSelect, OnCancel, originalColor)
end


thisGameObject.AddClickable()
thisGameObject.Clickable.OnClick(OnClick)

PositionCount

int PositionCount { get;set; }

Set/get the number of vertices.


--the below script will make a slider change the Line Renderer's Position Count
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.PositionCount  / 20 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.PositionCount  = refSlider.UISlider.Value * 20  -- from 0 to 20
end

refSlider.UISlider.OnValueChanged(OVC)

UseWorldSpace

bool UseWorldSpace { get;set; }

If enabled, the points are considered as world space coordinates. If disabled, they are local to the transform of the GameObject to which this component is attached.


--clicking this object toggles it's Use World Space option

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.UseWorldSpace = not   thisObject.LineRenderer.UseWorldSpace

end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

Loop

bool Loop { get;set; }

Enable this to connect the first and last positions of the line, and form a closed loop.


--clicking this object toggles it's Loop option

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  thisObject.LineRenderer.Loop = not   thisObject.LineRenderer.Loop

end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

NumCornerVertices

int NumCornerVertices { get;set; }

Set this to a value greater than 0, to get rounded corners between each segment of the line.


--the below script will make a slider change the Line Renderer's Corner Vertices
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.NumCornerVertices  / 10 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.NumCornerVertices  = refSlider.UISlider.Value * 10  -- from 0 to 10
end

refSlider.UISlider.OnValueChanged(OVC)

NumCapVertices

int NumCapVertices { get;set; }

Set this to a value greater than 0, to get rounded corners on each end of the line.


--the below script will make a slider change the Line Renderer's End Cap Vertices
thisGameObject = Space.Host.ExecutingObject

refSlider = Space.Host.GetReference("Slider") --Add Reference to Scripting Runtime Component
refLineRenderer = Space.Host.GetReference("LineRenderer") --Add Reference to Scripting Runtime Component

refSlider.UISlider.Value = refLineRenderer.LineRenderer.NumCapVertices  / 20 --initial position of slider

OVC = function()
  refLineRenderer.LineRenderer.NumCapVertices  = refSlider.UISlider.Value * 20  -- from 0 to 10
end

refSlider.UISlider.OnValueChanged(OVC)

TextureMode

int TextureMode { get;set; }

Control how the Texture is applied to the line. (0-3)


--clicking this object toggles between it's 4 Texture Modes

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  if thisObject.LineRenderer.TextureMode == 3 then
    thisObject.LineRenderer.TextureMode = 0
  else 
    thisObject.LineRenderer.TextureMode = thisObject.LineRenderer.TextureMode + 1
  end
end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)

Alignment

int Alignment { get;set; }

Set the direction that the line faces. (0 or 1)


--clicking this object toggles it's Alignment option between View (0) and Transform Z (1)

thisObject = Space.Host.ExecutingObject

function OnClickFunction()
  if thisObject.LineRenderer.Alignment == 0 then
    thisObject.LineRenderer.Alignment = 1
  else thisObject.LineRenderer.Alignment = 0
  end

end


thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)