Skip to content

Item class

On Vket Cloud, each non-Player objects on the world are defined as Items.

Items can be output to the scene by placing and configuring game objects with components added by VketCloudSDK, such as VKC Item Field and VKC Item Object.

The Item class is used to manipulate the above-mentioned Item in HeliScript.

You can retrieve an instance of the Item class by calling functions such as hsItemGet().

Item class has various methods to operate the obtained Item object.

How to get Item class object from component

The Item class object held by the component is obtainable by making the following call from the method in the component.

Item myItem = hsItemGet("Item name");

Calling hsItemGetSelf() will obtain the Item instance of the script's current component.

Item myitem = hsItemGetSelf();

Item utility functions

hsItemGet

Item hsItemGet(string itemName)

Global Function. Gets an Item by the specified name.

hsItemGetSelf

Item hsItemGetSelf()

Global function. Gets the Item object of where this component itself is attached, by calling this function in the component's constructor, or methods such as Update, OnClickNode, etc.


Methods

Equals

public bool Equals(Item obj)

Judges whether this class is identical to the argument obj.

When obtaining Item objects using hsItemGet(), etc., a different instance may be obtained despite being the same Item. For checking identity, use Equals() instead of "===" operator.

Available object types for this method

GetName

public string GetName()

Get the name of the Item.

Available object types for this method

GetParentItem

public Item GetParentItem()

Retrieves the parent Item relative to the Item itself.

Since an activity has a structure where an Item contains other Items, calling GetParentItem() from an Item within an activity will retrieve the parent Item.

If there is no parent Item, it returns null.

Available object types for this method

SetPos

public void SetPos(Vector3 pos)

Move Item to the designated position.

Available object types for this method

GetPos

public Vector3 GetPos()

Get the local position of Item.

If this Item is inside a VKC Item Activity, the obtained value will be the coordinates relative to the VKC Item Activity.

Available object types for this method

GetWorldPos

public Vector3 GetWorldPos()

Get the world position of Item.

Regardless of where this Item is located (inside or outside of a VKC Item Activity), it always returns the coordinates in world space.

Warning

Use this method when you want to obtain world coordinates in the case of an Activity.

If it is not an Activity, use GetPos for most of the time.

Available object types for this method

SetQuaternion

public bool SetQuaternion(Quaternion Rotate)

Set the quaternion rotation of Item.

Available object types for this method

GetQuaternion

public Quaternion GetQuaternion()

Get the local rotation of Item by quaternion.

Available object types for this method

GetWorldQuaternion

public Quaternion GetWorldQuaternion()

Get the world rotation of Item by quaternion.

Available object types for this method

GetWorldRotate

public Vector3 GetWorldRotate()

Get the world rotation of Item by Vector3 (Euler angles).

Available object types for this method

GetScale

public Vector3 GetScale()

Get the scale of Item by Vector3.

Available object types for this method

SetScale

public void SetScale(Vector3 Scale)

Set the scale of Item by Vector3.

Available object types for this method

MovePos

public void MovePos(Vector3 pos, float time, bool CollisionDetection = false)

Moves the Item over [time] seconds to the coordinates specified by pos.

If CollisionDetection is set to true, collision detection will be enabled as like the player avatar.

Available object types for this method

IsMoving

public bool IsMoving()

Returns true if the Item is moving.

Available object types for this method

Play

public bool Play()

Start playing a sound or particle. Returns true if the playback process has started successfully.
Returns false on failure.

Available object types for this method

Stop

public void Stop()

Stop the sound or particle that is playing.

Available object types for this method

IsPlay

public bool IsPlay()

Returns true if the sound or particle is playing.

Available object types for this method
Different return values for IsPlay
  • VKC Item Audio: Returns true if the designated audio clip is playing
  • VKC Item Object: Returns true if designated hem in Motion list is playing, when object mode is Motion
  • VKC Item Particle: Returns true if designated .hep particle is playing

Pause

public bool Pause()

Pauses the object's playing motion.

Available object types for this method

Restart

public bool Restart()

Resumes the object's playing motion after pause.

Available object types for this method

SetPlayTime

public bool SetPlayTime(float PlayTimeMS)

Sets the object's motion playing position by designated time.
The time is designated by millisecond.

Available object types for this method

GetPlayTime

public float GetPlayTime()

Gets the object's motion playing position by designated time.
The time is designated by millisecond.

Available object types for this method

SetShow

public void SetShow(bool flag)

Display Item with true. Hide the Item with false.

Available object types for this method

IsShow

public bool IsShow()

Returns true if the Item is visible, false otherwise.

Available object types for this method

ChangeMotion

public bool ChangeMotion(string MotionName, float BlendTimeMS = 0.0f)

Change the motion according to the designated MotionName.
BlendTimeMS will designate the time to blend the motion by milliseconds.

Available object types for this method

LoadMotion

public bool LoadMotion(string MotionName, string FileName, bool Loop)

Loads the designated motion.

Available object types for this method

FacialEmoteFixed

public bool FacialEmoteFixed(int FacialEmoteType)

Changes facial expression. Change will be done immediately, and will not return automatically as like the player avatar.

The facial types below can be designated:

  • FACIALEMOTETYPE_NEUTRAL
  • FACIALEMOTETYPE_JOY
  • FACIALEMOTETYPE_ANGRY
  • FACIALEMOTETYPE_SORROW
  • FACIALEMOTETYPE_FUN
Available object types for this method

Load

public bool Load()

Start loading the Item. Returns false if the loading process fails to start.

Available object types for this method

Unload

public bool Unload()

Unload the Item. Returns false if the unloading process fails.

Available object types for this method

IsLoading

public bool IsLoading()

Returns true if the Item is loading, false otherwise.

Available object types for this method

IsLoaded

public bool IsLoaded()

Returns true if the Item has finished loading, false otherwise.

Available object types for this method

GetNodeIndexByName

public int GetNodeIndexByName(string nodeName)

Finds a node by name and returns an index identifying that node. If the node is not found, -1 will be returned.

Available object types for this method

GetNodeNameByIndex

public string GetNodeNameByIndex(int nodeIndex)

Given a node by index, return the name of that node. If the node is not found, an empty string will be returned.

Available object types for this method

GetNodePosByIndex

public Vector3 GetNodePosByIndex(int nodeIndex)

Specify a node by index and return the coordinates of that node. If the node is not found, Vector3.zero will be returned.

Available object types for this method

SetShowNode

public bool SetShowNode(string nodeName, bool flag)

Specify a node by name, show it if flag is true and hide it if flag is false.

Available object types for this method

IsShowNode

public bool IsShowNode(string nodeName)

Specify a node by name, returns true if the node is visible and false if it is hidden.

Available object types for this method

SetRotateNode

public bool SetRotateNode(string nodeName, Vector3 rotate)

Specify a node by name and rotate that node.

Available object types for this method

SetEnableCollider

public bool SetEnableCollider(string nodeName, bool flag)

Specify a collider by name, true to enable it, false to disable it.

Available object types for this method

IsEnableCollider

public bool IsEnableCollider(string nodeName)

Specify a collider by name, returns true if the collider is enabled, false otherwise.

Available object types for this method

SetClickableNode

public bool SetClickableNode(string nodeName, bool flag)

Specify a clickable node by name, enable clicks if flag is set to true and disable clicks if flag is set to false.

Available object types for this method

IsClickableNode

public bool IsClickableNode(string nodeName)

Specify a node by name and returns true if the node is clickable, false otherwise.

Available object types for this method

SetUVScale

public bool SetUVScale(string materialName, float u, float v)

Specify a material by name and change the uv scale of that material. Returns false if the change fails.

Available object types for this method

SetUVOffset

public bool SetUVOffset(string materialName, float u, float v)

Specify a material by name and change the uv offset of that material starting from the top-left origin. Returns false if the change fails.

Origin coordinate of UV

While Unity considers the bottom-left coordinate of the UV as the origin, note that HeliScript considers the top-left as the origin.

Available object types for this method

SetMaterialColor

public bool SetMaterialColor(string materialName, float R, float G, float B, float A)

Changes the color of the specified material.

Returns false if the object is not loaded or if the object type is not supported.

Available object types for this method

SetAlpha

public bool SetAlpha(float Alpha)

Sets the alpha value for alpha blending. The range of values is 0.0f to 1.0f.

Returns false if the object is not loaded or if the object type is not supported.

Available object types for this method

PlayVideo

public void PlayVideo(string materialName, string url, bool loop)

Specifies the material to play and starts playing the video. Loop playback is performed if loop is set to true.

Available object types for this method

StopVideo

public void StopVideo()

Stops the video that is playing.

Available object types for this method

IsPlayVideo

public bool IsPlayVideo()

Returns true if a video is playing.

Available object types for this method

ClearTextPlane

public void ClearTextPlane()

Deletes the text.

Available object types for this method

WriteTextPlane

public void WriteTextPlane(string text)

Sets the text.

Available object types for this method

SetPlaneZBias

public void SetPlaneZBias(float ZBias)

Sets the Z-Bias of the VKC Item Plane.

Available object types for this method

GetPlaneZBias

public float GetPlaneZBias()

Gets the Z-Bias of the VKC Item Plane.

Available object types for this method

SetCamera

public bool SetCamera()

Set the camera type Item as a camera.
Refer to VKC Item Camera for usage.

Available object types for this method

ResetCamera

public void ResetCamera()

Detach camera set by SetCamera.
Refer to VKC Item Camera for usage.

Available object types for this method

ReplaceItem

public bool ReplaceItem(string URL)

Replace the Item by the designated model data.

Available object types for this method

ReplaceTexture

public bool ReplaceTexture(string MaterialName, string URL)

Replace the texture attached to the MaterialName's material by the designated URL content.

Available object types for this method

ReplaceBackupTexture

public bool ReplaceBackupTexture(string MaterialName)

Restores the texture of the material changed by ReplaceTexture() to its previous state.

Returns true if the change is successful. Returns false if the change fails, such as when the material is not found.

Available object types for this method

SetPhysicsEnable

public bool SetPhysicsEnable(string NodeName, bool Flag)

Enable physics for Node designated by NodeName if Flag is true, disable if Flag is false.

Available object types for this method

IsPhysicsFixed

public bool IsPhysicsFixed(string NodeName)

When physics is enabled, returns true if this Item is fixed.

Available object types for this method

GetPhysicsIDByNodeName

public int GetPhysicsIDByNodeName(string NodeName)

Get the PhysicsId for the designated Node.

When physics is enabled, returns true if this Item is fixed.

Available object types for this method

SetProperty

public bool SetProperty(string Key, string Value)

Set property by Key and Value.

Available object types for this method

SetPropertyWithoutNotify

public bool SetPropertyWithoutNotify(string Key, string Value)

Sets a property. If the same key exists, it will be overwritten; if not, it will be added.

This method has the same functionality as SetProperty(), but when the property is changed with SetPropertyWithoutNotify(), the callback method OnChangedProperty() is not called.

Available object types for this method

GetProperty

public string GetProperty(string Key)

Get property by Key. If the Key does not exist, an empty string will return.

Available object types for this method

CallComponentMethod

public void CallComponentMethod(string ComponentName, string MethodName, string Params)

Calls the component method set to the item.
The method can be called by designating the Componentname and MethodName. the Params will be used as arguments.

The callable methods must follow the limits below:

  • Has one and only String type as an argument
  • Return value is void
Available object types for this method

SetOverridesProperty

public bool SetOverridesProperty(string Key, string Value, string ItemName)

Sets overrides property. If the same Key exists, its value will be overwritten, otherwise the Key and Value will be appended. If Key does not use "itemname", enter an empty string as an argument.

Available object types for this method

GetOverridesProperty

public bool GetOverridesProperty(string Key, ref string Value, ref string ItemName)

Get the overrides property.

Available object types for this method

GetNumofPolygon

public int GetNumofPolygon()

Gets the number of polygons.

Available object types for this method

SendMessage

public bool SendMessage(HSMessage message)

Sends a message to this Item. The sent message is notified to the OnReceiveMessage() method of the components set on the Item.

Message sending is synchronous, meaning that sending and receiving occur within the same frame. Even if the receiver sends a message back to the sender, and the sender sends another message in response, all processing occurs within the same frame.

The sent message is notified to all components of the target Item, but if even one component successfully receives the message, meaning if the message reaches at least one OnReceiveMessage() callback method, SendMessage() returns true.

Object types that can call this method