Cluster Creator Kit Script Reference
    Preparing search index...

    Interface UnityComponent

    オブジェクトにアタッチされたUnityコンポーネントを操作するためのハンドルです。

    このハンドルは下記の関数で取得できます。

    ClusterScript.getUnityComponent または SubNode.getUnityComponent で取得した UnityComponent への操作は、アイテムの見た目や振る舞いを変更します。この変更はどのプレイヤーからも見る事ができます。

    PlayerLocalObject.getUnityComponent で取得した UnityComponent への操作は、そのプレイヤーから見たコンポーネントの見た目や振る舞いを変更します。

    いずれの関数でも、typeとしては特定のコンポーネント名のみが指定できます。 以下はサポートされているコンポーネント名の一覧です。

    • "AimConstraint"
    • "Animator"
    • "AudioSource"
    • "BoxCollider"
    • "Button"
    • "Camera"
    • "Canvas"
    • "CanvasGroup"
    • "CapsuleCollider"
    • "CharacterJoint"
    • "ConfigurableJoint"
    • "Dropdown"
    • "FixedJoint"
    • "GridLayoutGroup"
    • "HingeJoint"
    • "HorizontalLayoutGroup"
    • "Image"
    • "InputField"
    • "LayoutElement"
    • "Light"
    • "LineRenderer"
    • "LookAtConstraint"
    • "Mask"
    • "MeshCollider"
    • "MeshRenderer"
    • "Outline"
    • "ParentConstraint"
    • "ParticleSystem"
    • "PlayableDirector"
    • "PositionConstraint"
    • "PostProcessVolume"
    • "RawImage"
    • "RectTransform"
    • "Rigidbody"
    • "RotationConstraint"
    • "ScaleConstraint"
    • "Scrollbar"
    • "ScrollRect"
    • "Shadow"
    • "SkinnedMeshRenderer"
    • "Slider"
    • "SphereCollider"
    • "SpringJoint"
    • "Text"
    • "TextMesh"
    • "TextMeshPro"
    • "TextMeshProUGUI"
    • "TMP_Dropdown"
    • "TMP_InputField"
    • "Toggle"
    • "ToggleGroup"
    • "TrailRenderer"
    • "Transform"
    • "VerticalLayoutGroup"
    • "VideoPlayer"
    • "WheelCollider"
    interface UnityComponent {
        unityProp: UnityComponentPropertyProxy;
        onClick(callback: (isDown: boolean) => void): void;
        play(): void;
        setBool(id: string, value: boolean): void;
        setFloat(id: string, value: number): void;
        setInteger(id: string, value: number): void;
        setTrigger(id: string): void;
        stop(): void;
    }
    Index

    Properties

    unityProp: UnityComponentPropertyProxy

    Unityコンポーネントのプロパティを取得、または設定するためのハンドルを取得します。

    このハンドルからプロパティを指定する場合、Unity C# でアクセス可能なコンポーネントのプロパティ名そのものを指定する必要があります。 Unity Editor のインスペクターで表示される名称と実際のプロパティ名は異なる場合があることに注意してください。 詳しくはUnityのAPIリファレンス等を参照してください。

    unityProp でアクセスできるプロパティは、データ型が bool, int, float, double, string, Vector2, Vector3, Vector4, Quaternion, Color, Rect、または Enum の派生型のいずれかである必要があります。 それ以外のデータ型のプロパティでは取得を試みると null が返り、値を設定しようとすると例外になります。

    Enum の派生型のデータを取得した場合、値に対応する int が返ります。 同様に、Enum の派生型のデータを設定する場合、対応する int の値を指定します。 Enum のそれぞれの値と内部的な int の値の対応については、UnityのAPIリファレンス等を参照してください。

    このハンドルからプロパティの値を設定する場合、変更はスクリプトの実行完了後に反映されます。 プロパティの値を設定した直後、同一コールバックの実行中に同じプロパティの値を取得した場合、変更後の値は取得できません。

    Player Script では、この方法で更新したプロパティはスクリプトを実行中のプレイヤーにのみ反映されます。

    // Player Script で PlayerLocalObject のコンポーネントのプロパティにアクセスする例
    let imageObject = _.playerLocalObject("ImageObject");
    let image = imageObject.getUnityComponent("Image");
    image.unityProp.color = new Color(1, 0, 0, 1);

    let textObject = _.playerLocalObject("TextObject");
    let textComponent = textObject.getUnityComponent("Text");
    textComponent.unityProp.text = "Hello, World!";

    Player Script では、データ型がサポートされている全てのプロパティを取得、設定できます。

    Scriptable Item では、この方法で指定したプロパティの値はネットワークを介して同期されます。 同期は即座に反映されない場合があること、および値に補間処理は適用されない事に注意してください。

    // Scriptable Item で SubNode のコンポーネントのプロパティにアクセスする例
    let node = $.subNode("Cube");
    let meshRenderer = node.getUnityComponent("MeshRenderer");
    meshRenderer.unityProp.receiveShadows = false;

    let transform = node.getUnityComponent("Transform");
    transform.unityProp.localScale = new Vector3(2, 2, 2);

    Scriptable Item では、以下の場合の挙動は未定義です。 これらの操作を行うと、空間内のアイテムの状態がプレイヤー間で正しく同期されない可能性があります。

    • このAPIと他のCluster Script APIで内部的に同一のプロパティを更新した場合
      • SubNode.setPosition 等は内部的に Transform.localPosition を更新するため、このAPIでの Transform.localPosition の変更と併用した場合の挙動は未定義です
    • このAPIと他のギミックコンポーネントで内部的に同一のプロパティを更新した場合
    • このAPIと他のUnityの機能(Animator等)で同一のプロパティを更新した場合
    • このAPIによるプロパティの更新をきっかけとしてUnityのコンポーネントの内部状態が変化する場合

    上述の未定義挙動を避けるため、以下のことに注意してください。

    • このAPIで更新するプロパティは、Animator等からは制御しないようにする
    • このAPI以外のAPIで更新できる値については、そのAPIから操作することを検討する

    例えば、アイテムの位置を変更する場合はこのAPIではなく ClusterScript.setPosition の使用を検討してください。

    Scriptable Item では、プロパティをプレイヤー間で同期できるようにするため、編集可能なプロパティが制限されています。 各コンポーネントに応じた下記のプロパティが取得、設定できます。

    • AimConstraint
      • enabled
      • aimVector
      • constraintActive
      • rotationAtRest
      • rotationAxis
      • rotationOffset
      • upVector
      • weight
      • worldUpVector
    • Animator
      • enabled
    • AudioSource
      • enabled
      • bypassEffects
      • bypassListenerEffects
      • bypassReverbZones
      • dopplerLevel
      • loop
      • maxDistance
      • minDistance
      • mute
      • panStereo
      • pitch
      • playOnAwake
      • priority
      • spatialize
      • spatializePostEffects
      • volume
    • BoxCollider
      • enabled
      • center
      • isTrigger
      • size
    • Button
      • enabled
      • interactable
      • transition
    • Camera
      • enabled
      • allowHDR
      • allowMSAA
      • anamorphism
      • aperture
      • backgroundColor
      • barrelClipping
      • bladeCount
      • curvature
      • depth
      • farClipPlane
      • fieldOfView
      • focalLength
      • focusDistance
      • forceIntoRenderTexture
      • iso
      • lensShift
      • nearClipPlane
      • orthographic
      • orthographicSize
      • rect
      • sensorSize
      • shutterSpeed
      • stereoConvergence
      • stereoSeparation
      • useOcclusionCulling
      • usePhysicalProperties
    • Canvas
      • enabled
      • normalizedSortingGridSize
      • overridePixelPerfect
      • overrideSorting
      • pixelPerfect
      • planeDistance
    • CanvasGroup
      • enabled
      • alpha
      • blocksRaycasts
      • ignoreParentGroups
      • interactable
    • CapsuleCollider
      • enabled
      • center
      • height
      • isTrigger
      • radius
    • CharacterJoint
      • enableProjection
      • projectionAngle
      • projectionDistance
    • ConfigurableJoint
      • configuredInWorldSpace
      • enableCollision
      • enablePreprocessing
      • projectionAngle
      • projectionDistance
      • swapBodies
      • targetAngularVelocity
      • targetPosition
      • targetRotation
      • targetVelocity
    • Dropdown
      • enabled
      • alphaFadeSpeed
      • interactable
      • transition
      • value
    • FixedJoint
      • breakForce
      • breakTorque
      • enableCollision
      • enablePreprocessing
    • GridLayoutGroup
      • enabled
      • cellSize
      • childAlignment
      • constraint
      • constraintCount
      • spacing
      • startAxis
      • startCorner
    • HingeJoint
      • breakForce
      • breakTorque
      • enableCollision
      • enablePreprocessing
      • useLimits
      • useMotor
      • useSpring
    • HorizontalLayoutGroup
      • enabled
      • childAlignment
      • childControlHeight
      • childControlWidth
      • childForceExpandHeight
      • childForceExpandWidth
      • childScaleHeight
      • childScaleWidth
      • reverseArrangement
      • spacing
    • Image
      • enabled
      • color
      • fillAmount
      • fillCenter
      • fillClockwise
      • fillMethod
      • fillOrigin
      • maskable
      • pixelsPerUnitMultiplier
      • preserveAspect
      • raycastPadding
      • raycastTarget
      • type
      • useSpriteMesh
    • InputField
      • enabled
      • caretBlinkRate
      • caretWidth
      • characterLimit
      • characterValidation
      • contentType
      • customCaretColor
      • interactable
      • lineType
      • readOnly
      • selectionColor
      • text
      • transition
    • LayoutElement
      • enabled
      • flexibleHeight
      • flexibleWidth
      • ignoreLayout
      • layoutPriority
      • minHeight
      • minWidth
      • preferredHeight
      • preferredWidth
    • Light
      • enabled
      • bounceIntensity
      • color
      • colorTemperature
      • intensity
      • range
      • shadowBias
      • shadowNearPlane
      • shadowNormalBias
      • shadowStrength
      • spotAngle
    • LineRenderer
      • enabled
      • loop
      • meshLodSelectionBias
      • receiveShadows
      • rendererPriority
      • sortingOrder
      • useWorldSpace
      • widthMultiplier
    • LookAtConstraint
      • enabled
      • constraintActive
      • roll
      • rotationAtRest
      • rotationOffset
      • useUpObject
      • weight
    • Mask
      • enabled
      • showMaskGraphic
    • MeshCollider
      • enabled
      • convex
      • isTrigger
    • MeshRenderer
      • enabled
      • meshLodSelectionBias
      • receiveShadows
      • rendererPriority
      • sortingOrder
    • Outline
      • enabled
      • effectColor
      • effectDistance
      • useGraphicAlpha
    • ParentConstraint
      • enabled
      • constraintActive
      • rotationAtRest
      • rotationAxis
      • translationAtRest
      • translationAxis
      • weight
    • PlayableDirector
      • enabled
    • PositionConstraint
      • enabled
      • constraintActive
      • translationAtRest
      • translationAxis
      • translationOffset
      • weight
    • PostProcessVolume
      • enabled
      • blendDistance
      • isGlobal
      • priority
      • weight
    • RawImage
      • enabled
      • color
      • maskable
      • raycastPadding
      • raycastTarget
      • uvRect
    • RectTransform
      • anchorMax
      • anchorMin
      • anchoredPosition
      • localPosition
      • localRotation
      • localScale
      • pivot
      • rect
      • sizeDelta
    • Rigidbody
      • angularDamping
      • centerOfMass
      • inertiaTensor
      • inertiaTensorRotation
      • isKinematic
      • linearDamping
      • mass
      • useGravity
    • RotationConstraint
      • enabled
      • constraintActive
      • rotationAtRest
      • rotationAxis
      • rotationOffset
      • weight
    • ScaleConstraint
      • enabled
      • constraintActive
      • scaleAtRest
      • scaleOffset
      • scalingAxis
      • weight
    • ScrollRect
      • enabled
      • decelerationRate
      • elasticity
      • horizontal
      • inertia
      • movementType
      • scrollSensitivity
      • vertical
    • Scrollbar
      • enabled
      • direction
      • interactable
      • numberOfSteps
      • size
      • transition
      • value
    • Shadow
      • enabled
      • effectColor
      • effectDistance
      • useGraphicAlpha
    • SkinnedMeshRenderer
      • enabled
      • meshLodSelectionBias
      • receiveShadows
      • rendererPriority
      • skinnedMotionVectors
      • sortingOrder
      • updateWhenOffscreen
    • Slider
      • enabled
      • direction
      • interactable
      • maxValue
      • minValue
      • transition
      • value
      • wholeNumbers
    • SphereCollider
      • enabled
      • center
      • isTrigger
      • radius
    • SpringJoint
      • breakForce
      • breakTorque
      • damper
      • enableCollision
      • enablePreprocessing
      • maxDistance
      • minDistance
      • spring
      • tolerance
    • TMP_Dropdown
      • enabled
      • alphaFadeSpeed
      • interactable
      • transition
      • value
    • TMP_InputField
      • enabled
      • caretBlinkRate
      • caretColor
      • caretWidth
      • characterLimit
      • characterValidation
      • contentType
      • customCaretColor
      • interactable
      • lineLimit
      • onFocusSelectAll
      • pointSize
      • readOnly
      • richText
      • selectionColor
      • text
      • transition
    • Text
      • enabled
      • color
      • maskable
      • text
      • raycastPadding
      • raycastTarget
    • TextMesh
      • characterSize
      • fontSize
      • lineSpacing
      • offsetZ
      • richText
      • tabSize
      • text
    • TextMeshPro
      • enabled
      • color
      • enableAutoSizing
      • enableCulling
      • extraPadding
      • fontSize
      • fontSizeMax
      • fontSizeMin
      • fontStyle
      • lineSpacing
      • margin
      • maskable
      • overflowMode
      • overrideColorTags
      • pageToDisplay
      • parseCtrlCharacters
      • raycastTarget
      • richText
      • text
      • textWrappingMode
      • vertexBufferAutoSizeReduction
    • TextMeshProUGUI
      • enabled
      • color
      • enableAutoSizing
      • enableCulling
      • extraPadding
      • fontSize
      • fontSizeMax
      • fontSizeMin
      • fontStyle
      • lineSpacing
      • margin
      • maskable
      • overflowMode
      • overrideColorTags
      • pageToDisplay
      • parseCtrlCharacters
      • raycastTarget
      • richText
      • text
      • textWrappingMode
      • vertexBufferAutoSizeReduction
    • Toggle
      • enabled
      • interactable
      • isOn
      • transition
    • ToggleGroup
      • enabled
      • allowSwitchOff
    • TrailRenderer
      • enabled
      • autodestruct
      • emitting
      • meshLodSelectionBias
      • minVertexDistance
      • receiveShadows
      • rendererPriority
      • sortingOrder
      • time
      • widthMultiplier
    • Transform
      • localPosition
      • localRotation
      • localScale
    • VerticalLayoutGroup
      • enabled
      • childAlignment
      • childControlHeight
      • childControlWidth
      • childForceExpandHeight
      • childForceExpandWidth
      • childScaleHeight
      • childScaleWidth
      • reverseArrangement
      • spacing
    • VideoPlayer
      • enabled
      • isLooping
      • playOnAwake
      • playbackSpeed
      • sendFrameReadyEvents
      • skipOnDrop
      • targetCameraAlpha
      • waitForFirstFrame
    • WheelCollider
      • enabled
      • center
      • forceAppPointDistance
      • mass
      • radius
      • suspensionDistance
      • wheelDampingRate

    Methods

    • PlayerLocalObject.getUnityComponent で取得された Button コンポーネントに対してボタンの操作時に呼ばれるコールバック関数を登録します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      複数回同じ Button コンポーネントに対してコールバックを登録すると最後の登録のみが有効になります。

      コールバックはボタンを押し下げると isDown = true で呼び出され、その後にボタンを離すと isDown = false で呼び出されます。 このコールバックは isDown = true で呼ばれたあと、必ずしも isDown = false で呼ばれるとは限りません。 例えば、ボタンを押したままポインターをボタンの外側にずらした後に手を離すと isDown = false でのコールバックは呼ばれません。

      Parameters

      • callback: (isDown: boolean) => void

        ボタンの操作時に呼ばれるcallback関数

      Returns void

    • このハンドルが操作対象とするコンポーネントが PlayableDirector, AudioSource, ParticleSystem, VideoPlayer のいずれかであれば、それらの再生を開始します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      ClusterScript.getUnityComponent または SubNode.getUnityComponent で取得したコンポーネントに対してこの関数を呼び出した場合、 PlayableDirector, AudioSource では、どのプレイヤーから見ても play() が実行された時刻から再生を開始したように見えます。 冒頭部分の再生はスキップされる場合があります。

      すでに play() した状態のままこの関数を呼び出した場合、再生を停止し、再度再生します。

      ParticleSystem に対してこの関数を呼び出すと、呼び出した ParticleSystem に加えて子要素に含まれるパーティクルも再生されます。 親要素と子要素がいずれも ParticleSystem を持つ場合、親要素のパーティクルのみで play()stop() を実行して下さい。 親子関係にある ParticleSystem の複数を play() したり stop() したりすると正しく再生されない場合があります。

      VideoPlayer でこの関数を使う場合、SourceVideo Clip を指定し、Render ModeMaterial Override にすることを推奨しています。 SourceVideo Clip になっている VideoPlayer では、どのプレイヤーからみても play() が実行された時刻から再生を開始したように見えます。 ただし冒頭部分の再生はスキップされる場合があります。また、動画のサイズやエンコード方法によっては再生開始までに時間がかかる場合があります。

      SourceURL を指定した場合、 play() を呼び出してから実際に再生を開始するまでに大きな遅延が発生します。また、プレイヤーごとに再生の開始タイミングや再生時刻が一致しなくなります。

      VideoPlayer の描画結果を Render Texture に表示する場合、再生を行っていないときの描画状態はOSやテクスチャの設定によって変化します。 VideoPlayer の再生中以外はテクスチャを非表示にすることを検討してください。

      Returns void

    • このハンドルが操作対象とするコンポーネントが Animator である場合、その Animator のBoolのパラメーターを設定します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      存在しないパラメーターを指定した場合や、Boolではないパラメーターを指定した場合は何も起こりません。

      Parameters

      • id: string

        パラメーターの名前

      • value: boolean

        パラメーターの値

      Returns void

    • このハンドルが操作対象とするコンポーネントが Animator である場合、その Animator のFloatのパラメーターを設定します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      存在しないパラメータを指定した場合や、Floatではないパラメーターを指定した場合は何も起こりません。

      Parameters

      • id: string

        パラメーターの名前

      • value: number

        パラメーターの値

      Returns void

    • このハンドルが操作対象とするコンポーネントが Animator である場合、その Animator のIntegerのパラメーターを設定します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      存在しないパラメーターを指定した場合や、Integerではないパラメーターを指定した場合は何も起こりません。

      Parameters

      • id: string

        パラメーターの名前

      • value: number

        パラメーターの値

      Returns void

    • このハンドルが操作対象とするコンポーネントが Animator である場合、その Animator のTriggerをセットします。 それ以外のコンポーネントに対して呼び出した場合、例外になります。

      存在しないパラメーターを指定した場合や、Triggerではないパラメーターを指定した場合は何も起こりません。

      Parameters

      • id: string

        パラメーターの名前

      Returns void

    • このハンドルが操作対象とするコンポーネントが PlayableDirector, AudioSource, ParticleSystem, VideoPlayer のいずれかであれば、それらの再生を停止します。 それ以外のコンポーネントに対して呼び出した場合、例外になります。 PlayableDirector, VideoPlayer に対してこの関数を呼び出すと、再生を停止するとともに、再生時刻が初期状態にリセットされます。

      ParticleSystem に対してこの関数を呼び出すと、呼び出した ParticleSystem に加えて子要素に含まれるパーティクルも停止します。 親要素と子要素がいずれも ParticleSystem を持つ場合、親要素のパーティクルのみで play()stop() を実行して下さい。 親要素と子要素のパーティクルを同時に play() したり stop() したりすると正しく再生されない場合があります。

      Returns void