/// <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); }
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); }
/// <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); }
/// <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); }
/// <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]); }
/// <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]); }
/// <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]); }