Beispiel #1
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="shadows">設定したいShadow</param>
        /// <param name="color">ShadowのeffectColor</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(IEnumerable <Shadow> shadows, Color color)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetColor(parts.property.colorValues, ColorLength);
            parts.property.objectReferenceValues.AddRange(shadows.Cast <Object>());
            parts.property.colorValues[ColorIndex] = color;
            return(parts);
        }
Beispiel #2
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="outlines">設定したいBaseMeshEffect</param>
        /// <param name="color">BaseMeshEffectのenabled</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(IEnumerable <BaseMeshEffect> baseMeshEffects, bool enabled)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetBoolean(parts.property.boolValues, BoolLength);
            parts.property.objectReferenceValues.AddRange(baseMeshEffects.Cast <Object>());
            parts.property.boolValues[BoolIndex] = enabled;
            return(parts);
        }
Beispiel #3
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="rawImage">設定したいRawImage</param>
        /// <param name="texture2D">RawImageのTexture</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(RawImage rawImage, Texture2D texture2D)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetObjectReference(parts.property.objectReferenceValues, ObjectLength);
            parts.property.objectReferenceValues[RawImageIndex]  = rawImage;
            parts.property.objectReferenceValues[Texture2DIndex] = texture2D;
            return(parts);
        }
Beispiel #4
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="canvasGroups">設定したいCanvasGroup</param>
        /// <param name="alpha">CanvasGroupのアルファ</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(IEnumerable <CanvasGroup> canvasGroups, float alpha)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetFloat(parts.property.floatValues, FloatLength);
            parts.property.objectReferenceValues.AddRange(canvasGroups.Cast <Object>());
            parts.property.floatValues[FloatIndex] = alpha;
            return(parts);
        }
Beispiel #5
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="image">設定したいImage</param>
        /// <param name="sprite">ImageのSprite</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(Image image, Sprite sprite)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetObjectReference(parts.property.objectReferenceValues, ObjectLength);
            parts.property.objectReferenceValues[ImageIndex]  = image;
            parts.property.objectReferenceValues[SpriteIndex] = sprite;
            return(parts);
        }
Beispiel #6
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="transforms">設定したいTransform</param>
        /// <param name="localScale">TransformのlocalScale</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(IEnumerable <Transform> transforms, Vector3 localScale)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetVector4(parts.property.vector4Values, VectorLength);
            parts.property.objectReferenceValues.AddRange(transforms.Cast <Object>());
            parts.property.vector4Values[VectorIndex] = localScale;
            return(parts);
        }
Beispiel #7
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="graphic">設定したいGraphic</param>
        /// <param name="material">GraphicのMaterial</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(Graphic graphic, Material material)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetObjectReference(parts.property.objectReferenceValues, ObjectLength);
            parts.property.objectReferenceValues[GraphicIndex]  = graphic;
            parts.property.objectReferenceValues[MaterialIndex] = material;
            return(parts);
        }
Beispiel #8
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="gameObjects">設定したいGameObject</param>
        /// <param name="isActive">GameObjectのactiveSelf</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(IEnumerable <GameObject> gameObjects, bool isActive)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetBoolean(parts.property.boolValues, BoolLength);
            parts.property.objectReferenceValues.AddRange(gameObjects.Cast <Object>());
            parts.property.boolValues[BoolIndex] = isActive;
            return(parts);
        }
Beispiel #9
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="rootGameObject">ルートとなるGameObject</param>
        /// <param name="animationClip">アニメーションクリップ</param>
        /// <param name="time">クリップをサンプルする時間</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(GameObject rootGameObject, AnimationClip animationClip, float time)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetObjectReference(parts.property.objectReferenceValues, ObjectLength);
            SkinnerUtility.ResetFloat(parts.property.floatValues, FloatLength);
            parts.property.objectReferenceValues[GameObjectIndex]    = rootGameObject;
            parts.property.objectReferenceValues[AnimationClipIndex] = animationClip;
            parts.property.floatValues[TimeIndex] = time;
            return(parts);
        }
Beispiel #10
0
        /// <summary>
        /// 対象のスキンパーツを生成
        /// </summary>
        /// <param name="userLogic">設定したいロジックのインスタンスオブジェクト</param>
        /// <param name="property">ロジックに合ったプロパティ</param>
        /// <returns>生成したスキンパーツ</returns>
        public static SkinParts CreateSkinParts(UserLogic userLogic, SkinPartsPropertry property)
        {
            var parts = new SkinParts();

            SkinnerUtility.ResetObjectReference(parts.property.objectReferenceValues, RequiredObjectLength);
            parts.property.objectReferenceValues[LogicIndex] = userLogic;
            parts.property.objectReferenceValues.AddRange(property.objectReferenceValues);
            parts.property.boolValues.AddRange(property.boolValues);
            parts.property.intValues.AddRange(property.intValues);
            parts.property.floatValues.AddRange(property.floatValues);
            parts.property.vector4Values.AddRange(property.vector4Values);
            return(parts);
        }
Beispiel #11
0
 /// <summary>
 /// 変数IDを元にフィールド配列インデックス取得する
 /// </summary>
 /// <param name="variableId">変数ID</param>
 /// <param name="valueIndex">変数番号</param>
 /// <returns>変数IDが見つかった場合は真</returns>
 bool IUserLogicExtension.TryGetValueIndex(int variableId, out int valueIndex)
 {
     if (m_VariableIdMap == null)
     {
         m_VariableIdMap = SkinnerUtility.CreateVariableIdToIndexDictionary(variables);
     }
     if (m_VariableIdMap.ContainsKey(variableId))
     {
         valueIndex = m_VariableIdMap[variableId];
         return(true);
     }
     // 見つからないときはとりあえず0を返しておく
     valueIndex = 0;
     return(false);
 }
Beispiel #12
0
 /// <summary>
 /// 値をオブジェクトに反映させる
 /// </summary>
 /// <param name="property">プロパティ</param>
 public void SetValues(SkinPartsPropertry property)
 {
     //値がないなら何もしない
     if (property.objectReferenceValues.Count < ObjectLength)
     {
         return;
     }
     if (!rawImage)
     {
         rawImage = property.objectReferenceValues[RawImageIndex] as RawImage;
         //空か型違いのため処理終了
         if (!rawImage)
         {
             return;
         }
     }
     if (!texture2D)
     {
         texture2D = property.objectReferenceValues[Texture2DIndex] as Texture2D;
     }
     rawImage.texture = texture2D;
     SkinnerUtility.ReloadGameObject(rawImage);
 }
Beispiel #13
0
 /// <summary>
 /// 値をオブジェクトに反映させる
 /// </summary>
 /// <param name="property">プロパティ</param>
 public void SetValues(SkinPartsPropertry property)
 {
     //値がないなら何もしない
     if (property.objectReferenceValues.Count < ObjectLength)
     {
         return;
     }
     if (!graphic)
     {
         graphic = property.objectReferenceValues[GraphicIndex] as Graphic;
         //空か形違いのため処理終了
         if (!graphic)
         {
             return;
         }
     }
     if (!material)
     {
         material = property.objectReferenceValues[MaterialIndex] as Material;
     }
     graphic.material = material;
     SkinnerUtility.ReloadGameObject(graphic);
 }
Beispiel #14
0
 /// <summary>
 /// 値をオブジェクトに反映させる
 /// </summary>
 /// <param name="property">プロパティ</param>
 public void SetValues(SkinPartsPropertry property)
 {
     //値がないなら何もしない
     if (property.objectReferenceValues.Count < ObjectLength)
     {
         return;
     }
     if (!image)
     {
         image = property.objectReferenceValues[ImageIndex] as Image;
         //空か型違いのため処理終了
         if (!image)
         {
             return;
         }
     }
     if (!sprite)
     {
         sprite = property.objectReferenceValues[SpriteIndex] as Sprite;
     }
     image.sprite = sprite;
     SkinnerUtility.ReloadGameObject(image);
 }