wiki.sine.space | sinespace

Difference between revisions of "Scripting/SRenderer"

From wiki.sine.space
Jump to: navigation, search
Line 4: Line 4:
  
 
=Properties=
 
=Properties=
 +
 +
 +
{{ScriptFunction|bool|Enabled|{ get; set; }|Get/Set if the rendered object is visible.|5=<pre>Space.Host.ExecutingObject.Renderer.Enabled = false </pre>|6=<pre>--clicking this object will make it disappear/reappear
 +
 +
thisGameObject = Space.Host.ExecutingObject
 +
 +
 +
OnClick = function()
 +
thisGameObject.Renderer.Enabled = not thisGameObject.Renderer.Enabled
 +
end
 +
 +
thisGameObject.AddClickable()
 +
thisGameObject.Clickable.OnClick(OnClick)</pre>}}
 +
 +
 
{{ScriptFunction|bool|IsVisible|{ get; }|Returns true if the renderer is visible on any camera.
 
{{ScriptFunction|bool|IsVisible|{ get; }|Returns true if the renderer is visible on any camera.
 
Note that the object is considered visible when it needs to be rendered in the Scene. For example, it might not actually be visible by any camera but still need to be rendered for shadows. When running in the editor, the Scene view cameras will also cause this value to be true.|5=<pre>
 
Note that the object is considered visible when it needs to be rendered in the Scene. For example, it might not actually be visible by any camera but still need to be rendered for shadows. When running in the editor, the Scene view cameras will also cause this value to be true.|5=<pre>
Line 22: Line 37:
  
  
{{ScriptFunction|bool|Enabled|{ get; set; }|Get/Set if the rendered object is visible.|5=<pre>Space.Host.ExecutingObject.Renderer.Enabled = false </pre>|6=<pre>--clicking this object will make it disappear/reappear
 
 
thisGameObject = Space.Host.ExecutingObject
 
 
 
OnClick = function()
 
thisGameObject.Renderer.Enabled = not thisGameObject.Renderer.Enabled
 
end
 
 
thisGameObject.AddClickable()
 
thisGameObject.Clickable.OnClick(OnClick)</pre>}}
 
  
  

Revision as of 18:08, 24 January 2022

A renderer is what makes an object appear on the screen.

The SRenderer class component interfaces with Unity's Renderer component, exposing its functions to scripting.

Properties

Enabled

bool Enabled { get; set; }

Get/Set if the rendered object is visible.

Space.Host.ExecutingObject.Renderer.Enabled = false 


--clicking this object will make it disappear/reappear

thisGameObject = Space.Host.ExecutingObject


OnClick = function()
thisGameObject.Renderer.Enabled = not thisGameObject.Renderer.Enabled
end

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


IsVisible

bool IsVisible { get; }

Returns true if the renderer is visible on any camera. Note that the object is considered visible when it needs to be rendered in the Scene. For example, it might not actually be visible by any camera but still need to be rendered for shadows. When running in the editor, the Scene view cameras will also cause this value to be true.

isVisible = Space.Host.ExecutingObject.Renderer.IsVisible


--this object will move forward only if visible on a camera

thisObject = Space.Host.ExecutingObject


function OnUpdateFunction()
  
  if thisObject.Renderer.IsVisible then
thisObject.WorldPosition = thisObject.WorldPosition + (thisObject.Forward * Space.DeltaTime * 0.2)
 end

end

thisObject.OnUpdate(OnUpdateFunction)



Material

SMaterial Material { get; set; }

Returns the first instantiated Material assigned to the renderer.

Modifying material will change the material for this object only.

If the material is used by any other renderers, this will clone the shared material and start using it from now on.

Space.Host.ExecutingObject.Renderer.Material.SetColor("_Color", 1.0, 0.5, 0.5, 1.0)


--clicking this object will toggle it's material's color between Red and Black color when clicked
thisObject = Space.Host.ExecutingObject


function OnClickFunction()
  if thisObject.Renderer.Material.GetColor("_Color") == Color.Black then
    thisObject.Renderer.Material.SetColor("_Color", Color.Red)
  else
    thisObject.Renderer.Material.SetColor("_Color", Color.Black)
  end

end

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

Materials[]

SMaterial Materials[] { get; set; }

Returns all the instantiated materials of this object.

This is an array of all materials used by the renderer. Unity supports a single object using multiple materials; in this case materials contains all the materials. sharedMaterial and material properties return the first used material if there is more than one.

Modifying any material in materials will change the appearance of only that object.

Note that like all arrays returned by Unity, this returns a copy of materials array. If you want to change some materials in it, get the value, change an entry and set materials back.

mats = Space.Host.ExecutingObject.Renderer.Materials



SharedMaterial

SMaterial SharedMaterial { get; set; }

The shared material of this object.

Modifying sharedMaterial will change the appearance of all objects using this material, and change material settings that are stored in the project too.

It is not recommended to modify materials returned by sharedMaterial. If you want to modify the material of a renderer use material instead.

Space.Host.ExecutingObject.Renderer.SharedMaterial.SetColor("_Color", 1.0, 0.5, 0.5, 1.0)


--clicking this object will toggle it's shared material's color between Red and Black color when clicked
thisObject = Space.Host.ExecutingObject


function OnClickFunction()
  if thisObject.Renderer.SharedMaterial.GetColor("_Color") == Color.Black then
    thisObject.Renderer.SharedMaterial.SetColor("_Color", Color.Red)
  else
    thisObject.Renderer.SharedMaterial.SetColor("_Color", Color.Black)
  end

end

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

SharedMaterials[]

SMaterial SharedMaterials[] { get; set; }

All the shared materials of this object.

This is an array of all materials used by the renderer. Unity supports a single object using multiple materials; in this case sharedMaterials contains all the materials. sharedMaterial and material properties return the first used material if there is more than one.

Modifying any material in sharedMaterials will change the appearance of all objects using this material, and change material settings that are stored in the project too.

It is not recommended to modify materials returned by sharedMaterials. If you want to modify the material of a renderer use material instead.

Note that like all arrays returned by Unity, this returns a copy of materials array. If you want to change some materials in it, get the value, change an entry and set materials back.

sharedMats = Space.Host.ExecutingObject.Renderer.SharedMaterials