void Awake() { tk2dSprite sprite = t_floor.GetComponent <tk2dSprite>(); f_spriteX = sprite.GetUntrimmedBounds().size.x *t_floor.localScale.x; if (Bird.isPlay) { //设置初始位置 floorQueue = new Queue <Transform>(i_numOfObject); barrierQueue = new Queue <Transform>(4); barrierNextPos = transform.localPosition; barrierNextPos.z = 0f; barrierNextPos.x = 10f; floorNextPos = transform.localPosition; floorNextPos.z = 0f; floorNextPos.y = -4f; //初始化地面 for (i_index = 0; i_index < i_numOfObject; i_index++) { Transform tf = (Transform)Instantiate(t_floor); tf.localPosition = floorNextPos; tf.tag = "floor"; //横向X轴平移 floorNextPos.x += f_spriteX; floorQueue.Enqueue(tf); //加入队列中 } //障碍物 for (i_index = 0; i_index < 4; i_index++) { barrierNextPos.y = Random.Range(-6f, -2.5f); Transform tf = (Transform)Instantiate(t_barrier); tf.localPosition = barrierNextPos; tf.tag = "barrier"; barrierNextPos.x += 3.5f; barrierQueue.Enqueue(tf); } } }
public void OnSceneGUI() { if (tk2dPreferences.inst.enableSpriteHandles == false || !tk2dEditorUtility.IsEditable(target)) { return; } tk2dSprite spr = (tk2dSprite)target; var sprite = spr.CurrentSprite; if (sprite == null) { return; } Transform t = spr.transform; Bounds b = spr.GetUntrimmedBounds(); Rect localRect = new Rect(b.min.x, b.min.y, b.size.x, b.size.y); // Draw rect outline Handles.color = new Color(1, 1, 1, 0.5f); tk2dSceneHelper.DrawRect(localRect, t); Handles.BeginGUI(); // Resize handles if (tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); Rect resizeRect = tk2dSceneHelper.RectControl(999888, localRect, t); if (EditorGUI.EndChangeCheck()) { tk2dUndo.RecordObjects(new Object[] { t, spr }, "Resize"); spr.ReshapeBounds(new Vector3(resizeRect.xMin, resizeRect.yMin) - new Vector3(localRect.xMin, localRect.yMin), new Vector3(resizeRect.xMax, resizeRect.yMax) - new Vector3(localRect.xMax, localRect.yMax)); tk2dUtil.SetDirty(spr); } } // Rotate handles if (!tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); float theta = tk2dSceneHelper.RectRotateControl(888999, localRect, t, new List <int>()); if (EditorGUI.EndChangeCheck()) { tk2dUndo.RecordObject(t, "Rotate"); if (Mathf.Abs(theta) > Mathf.Epsilon) { t.Rotate(t.forward, theta, Space.World); } } } Handles.EndGUI(); // Sprite selecting tk2dSceneHelper.HandleSelectSprites(); // Move targeted sprites tk2dSceneHelper.HandleMoveSprites(t, localRect); if (GUI.changed) { tk2dUtil.SetDirty(target); } }
public static void ScaleAndSetSize(tk2dSprite spr,Vector2 size) { Vector3 sc=new Vector3(size.x/(spr.GetUntrimmedBounds().size.x), size.y/(spr.GetUntrimmedBounds().size.y),1f); spr.scale =( new Vector3(spr.scale.x * sc.x,spr.scale.y * sc.y,spr.scale.z)); }
public void OnSceneGUI() { if (tk2dPreferences.inst.enableSpriteHandles == false) { return; } tk2dSprite spr = (tk2dSprite)target; var sprite = spr.CurrentSprite; if (sprite == null) { return; } Transform t = spr.transform; Bounds b = spr.GetUntrimmedBounds(); Rect localRect = new Rect(b.min.x, b.min.y, b.size.x, b.size.y); Vector3 unscaledBoundsSize = sprite.untrimmedBoundsData[1]; // Draw rect outline Handles.color = new Color(1, 1, 1, 0.5f); tk2dSceneHelper.DrawRect(localRect, t); Handles.BeginGUI(); // Resize handles if (tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); Rect resizeRect = tk2dSceneHelper.RectControl(999888, localRect, t); if (EditorGUI.EndChangeCheck()) { Vector3 newScale = new Vector3(resizeRect.width / unscaledBoundsSize.x, resizeRect.height / unscaledBoundsSize.y, spr.scale.z); if (newScale != spr.scale) { Undo.RegisterUndo(new Object[] { t, spr }, "Resize"); float factorX = (Mathf.Abs(spr.scale.x) > Mathf.Epsilon) ? (newScale.x / spr.scale.x) : 0.0f; float factorY = (Mathf.Abs(spr.scale.y) > Mathf.Epsilon) ? (newScale.y / spr.scale.y) : 0.0f; Vector3 offset = new Vector3(resizeRect.xMin - localRect.xMin * factorX, resizeRect.yMin - localRect.yMin * factorY, 0.0f); Vector3 newPosition = t.TransformPoint(offset); if (newPosition != t.position) { t.position = newPosition; } spr.scale = newScale; EditorUtility.SetDirty(spr); } } } // Rotate handles if (!tk2dSceneHelper.RectControlsToggle()) { EditorGUI.BeginChangeCheck(); float theta = tk2dSceneHelper.RectRotateControl(888999, localRect, t, new List <int>()); if (EditorGUI.EndChangeCheck()) { Undo.RegisterUndo(t, "Rotate"); if (Mathf.Abs(theta) > Mathf.Epsilon) { t.Rotate(t.forward, theta); } } } Handles.EndGUI(); // Sprite selecting tk2dSceneHelper.HandleSelectSprites(); // Move targeted sprites tk2dSceneHelper.HandleMoveSprites(t, localRect); }
public void Initialize(string spriteName){ m_sprite = transform.GetChild(0).GetComponent<tk2dSprite>(); m_sprite.SetSprite(spriteName); size = new Vector2(m_sprite.GetUntrimmedBounds().size.x, m_sprite.GetUntrimmedBounds().size.y); }