Exemple #1
0
        /// <summary>
        ///  根据欧拉角设置一个物体的旋转;
        /// </summary>
        /// <param name="gameObjectName"></param>
        /// <param name="rotStr"></param>
        /// <returns></returns>
        public static bool SetRotation(string gameObjectName, string rotStr)
        {
            float[] rotation = CastString.CastToNumbers <float>(rotStr);

            GetGameObject(gameObjectName).transform.position = new Vector3(rotation[0], rotation[1], rotation[2]);

            return(true);
        }
Exemple #2
0
        public static bool Color(string gameObjectName, string color)
        {
            float[] colors = CastString.CastToNumbers <float>(color);

            GetGameObject(gameObjectName).GetComponent <MeshRenderer>().material.color = new Color(colors[0], colors[1], colors[2]);

            return(true);
        }
        /// <summary>
        ///  循环执行指定的范围;
        ///
        ///  格式为 loop:[step|position],count=(int)数值 ,number=数值;
        ///
        ///  注意: 正直是向前定位,从指定为位置执行到当前位置; 负值是向后定位,从当前位置执行到指定位置;
        /// </summary>
        /// <param name="josnData"></param>
        /// <returns></returns>
        private bool Loop(JsonData jsonData)
        {
            int[] parameters = CastString.CastToNumbers <int>(jsonData[1].ToString());

            if (jsonData[0].ToString().ToLower() == "step")
            {
                LitJsonParsing.Instance.ExecuteLoopStep(parameters[0], parameters[1]);
            }
            else
            {
                // TODO
            }

            return(true);
        }
Exemple #4
0
        /// <summary>
        ///  Unity的等待事件,单位秒;
        /// </summary>
        /// <param name="waitTime"></param>
        /// <param name="actionName"></param>
        /// <returns></returns>
        public static bool OnWaitSecond(string waitTime, string actionName = null, string parameters = null)
        {
            float time = CastString.CastToNumbers <float>(waitTime)[0];

            if (string.IsNullOrEmpty(parameters))
            {
                UnityEventService.OnWaitSecond(time, EventFunctionLibrary.GetAction(actionName));
            }

            else
            {
                UnityEventService.OnWaitSecond(time, EventFunctionLibrary.GetActionT(actionName), parameters);
            }

            return(true);
        }
Exemple #5
0
        /// <summary>
        /// 设置一个物体的位置;注意,如果该物体有父物体,则默认设置的是相对位置;
        /// </summary>
        /// <param name="gameObjectName"></param>
        /// <param name="posStr"></param>
        /// <returns></returns>
        public static bool SetPosition(string gameObjectName, string posStr)
        {
            float[] position = CastString.CastToNumbers <float>(posStr);

            GameObject go = GetGameObject(gameObjectName);

            if (go.transform.parent)
            {
                go.transform.localPosition = new Vector3(position[0], position[1], position[2]);
            }

            else
            {
                go.transform.position = new Vector3(position[0], position[1], position[2]);
            }

            return(true);
        }
Exemple #6
0
        /// <summary>
        ///  设置物体的缩放;
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="scaleStr"></param>
        public static void SetScale(this GameObject gameObject, string scaleStr)
        {
            float[] scales = CastString.CastToNumbers <float>(scaleStr);

            gameObject.transform.localScale = new Vector3(scales[0], scales[1], scales[2]);
        }
Exemple #7
0
        /// <summary>
        ///  设置物体的旋转;
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="rotStr"></param>
        public static void SetRotation(this GameObject gameObject, string rotStr)
        {
            float[] rotations = CastString.CastToNumbers <float>(rotStr);

            gameObject.transform.eulerAngles = new Vector3(rotations[0], rotations[1], rotations[2]);
        }
Exemple #8
0
        /// <summary>
        ///  设置物体的位置;
        /// </summary>
        /// <param name="gameObject"></param>
        /// <param name="posStr"></param>
        public static void SetPosition(this GameObject gameObject, string posStr)
        {
            float[] positions = CastString.CastToNumbers <float>(posStr);

            gameObject.transform.position = new Vector3(positions[0], positions[1], positions[2]);
        }
        /// <summary>
        ///  重置一个物体的所有属性;
        /// </summary>
        /// <param name="gameObjectInfo"></param>
        private void ResetGameObjectInfo(JsonData gameObjectInfo)
        {
            string gameObjectName = gameObjectInfo["name"].ToString();

            GameObject gameObject = GameObjectAssetsManager.Instance.FindGameObjectAsset(gameObjectName, false);

            if (gameObject == null)
            {
                gameObject = GameObject.Find(gameObjectName);

                if (gameObject == null)
                {
                    return;
                }
            }

            // 还原父子关系;

            gameObjectName = gameObjectInfo["parent"].ToString();

            // 如果父子关系发生变化,则改变父子关系;

            if (gameObject.transform.parent == null || gameObject.transform.parent.name != gameObjectName)
            {
                if (gameObjectName == "")
                {
                    gameObject.transform.parent = null;
                }

                else
                {
                    GameObject parentGameObject = GameObjectAssetsManager.Instance.FindGameObjectAsset(gameObjectName, false);

                    if (parentGameObject == null)
                    {
                        parentGameObject = GameObject.Find(gameObjectName);
                    }

                    if (parentGameObject != null)
                    {
                        gameObject.transform.parent = parentGameObject.transform;
                    }
                }
            }


            // 还原激活状态、标签和层级;

            gameObject.SetActive(gameObjectInfo["active"].ToString() == "True");

            gameObject.tag = gameObjectInfo["tag"].ToString();

            gameObject.layer = int.Parse(gameObjectInfo["layer"].ToString());

            // 还原 Transform属性;

            float[] Vector3 = CastString.CastToNumbers <float>(gameObjectInfo["pos"].ToString());

            gameObject.transform.position = new Vector3(Vector3[0], Vector3[1], Vector3[2]);

            Vector3 = CastString.CastToNumbers <float>(gameObjectInfo["rot"].ToString());

            gameObject.transform.eulerAngles = new Vector3(Vector3[0], Vector3[1], Vector3[2]);

            Vector3 = CastString.CastToNumbers <float>(gameObjectInfo["scale"].ToString());

            gameObject.transform.localScale = new Vector3(Vector3[0], Vector3[1], Vector3[2]);
        }