public MinimapDisplay(Transform parent) { for (int row = 0; row < tiles.GetLength(0); row++) { for (int col = 0; col < tiles.GetLength(1); col++) { var pos = new Vector2(row * 32, col * 16); var s = new Sprite(HUDSpriteFactory.Instance.CreateMinimapBlack()); MapTile t = new MapTile(s, pos); tiles[row, col] = t; Scene.Add(t); parent.AddChild(t); } } // link linkPosition = new HUDItem(HUDSpriteFactory.Instance.CreateMapGreenSquare(), new Vector2(0, 0)); SetLinkPosition(); Constants.SetLayerDepth(linkPosition, Constants.LayerDepth.Debug); Scene.Add(linkPosition); parent.AddChild(linkPosition); // boss bossRoom = new HUDItem(HUDSpriteFactory.Instance.CreateMapBossLocation(), new Vector2(0, 0)); var bossSprite = bossRoom.GetComponent <Sprite>(); bossSprite.SetVisible(false); bossSprite.SetAnimate(true); bossSprite.SetUpdateFrameSpeed(10); SetBossPosition(); Constants.SetLayerDepth(bossRoom, Constants.LayerDepth.Debug); Scene.Add(bossRoom); parent.AddChild(bossRoom); }
public Link(Vector2 pos) { // ToDo: move to an appropriate place in this constructor AddComponent(new LinkLevelBehavior()); this.name = "Link"; // don't do any logic here, just add Components that do the logic Transform transform = GetComponent <Transform>(); transform.position = pos; BasicSprite imageSprite = LinkSpriteFactory.Instance.CreateLinkWalkingUp(); Sprite sprite = new Sprite(imageSprite); sprite.SetAnimate(false); AddComponent(sprite); var wideLink = new WideLink(); transform.AddChild(wideLink); var sword = new Sword(); transform.AddChild(sword); BehaviorScript script = new LinkBehavior(sword, wideLink); AddComponent(script); BehaviorScript inventory = new LinkInventory(); AddComponent(inventory); BehaviorScript healthManagement = new LinkHealthManagement(); AddComponent(healthManagement); Collider coll = new Collider(new RectangleF(6, 38, 30, 24)); AddComponent(coll); coll.response = new LinkCollisionResponse(this); Constants.SetLayerDepth(this, Constants.LayerDepth.Player); BehaviorScript xp = new LinkXPManager(); AddComponent(xp); //transform.AddChild(new TransformTest()); }
public static GameObject AddChildGameObject(this Transform t, string name, Vector3 localPosition, Vector3 localScale) { GameObject child = !(t is RectTransform) ? new GameObject(name) : new GameObject(name, new Type[] { typeof(RectTransform) }); t.AddChild(child, localPosition, localScale); return(child); }
//描画オブジェクトを作成 AdvGraphicObject CreateObject(string name, AdvGraphicInfo grapic) { AdvGraphicObject obj; //IAdvGraphicObjectがAddComponentされたプレハブをリソースに持つかチェック GameObject prefab; if (grapic.TryGetAdvGraphicObjectPrefab(out prefab)) { //プレハブからリソースオブジェクトを作成して返す GameObject go = GameObject.Instantiate(prefab); go.name = name; obj = go.GetComponent <AdvGraphicObject>(); rootObjects.AddChild(obj.gameObject); } else { obj = rootObjects.AddChildGameObjectComponent <AdvGraphicObject>(name); } obj.Init(this, grapic); //最初の描画時は位置をリセットする if (currentGraphics.Count == 0) { this.ResetCanvasRectTransform(); } currentGraphics.Add(obj.name, obj); return(obj); }
/// <summary> /// 克隆物体并添加到parent下 /// </summary> /// <param name="parent"></param> /// <param name="clone"></param> /// <returns></returns> public static GameObject CloneAndAddClild(this Transform parent, GameObject clone) { var obj = (GameObject)UnityEngine.Object.Instantiate(clone); parent.AddChild(obj.transform); return(obj); }
/// <summary> /// GameObjectを作成し、子として追加 /// </summary> /// <param name="parent">親</param> /// <param name="name">作成する子の名前</param> /// <param name="localPosition">子に設定するローカル座標</param> /// <returns>追加済みの子</returns> /// <param name="localScale">子に設定するローカルスケール</param> public static GameObject AddChildGameObject(this Transform t, string name, Vector3 localPosition, Vector3 localScale) { GameObject go = (t is RectTransform) ? new GameObject(name, typeof(RectTransform)) : new GameObject(name); t.AddChild(go, localPosition, localScale); return(go); }
public void AddOption(string label, Sprite icon, bool value, Action <bool> toggledCallback, object optionData) { var item = root.AddChild(itemTemplate); item.Init(label, icon, value, isOn => { if (suspendCallback) { return; } filterInput.text = string.Empty; if (isOn && !multiselect) { foreach (var x in _options.Where(x => x.IsOn && x != item)) { x.IsOn = false; } } UpdateSelection(); toggledCallback(isOn); if (isOn && content.activeSelf && !multiselect) { ToggleOptions(); } }, optionData); if (multiselect) { item.toggle.group = null; } _options.Add(item); UpdateSelection(); }
private void Items_OnInsertItem(T obj, int index) { var view = new ListViewItem <T>(obj); keyToView[obj] = view; Transform.AddChild(view); }
void ShowUtilityButtons() { EditorGUILayout.BeginHorizontal(); // Reset Button if (GUILayout.Button(new GUIContent(". Reset .", "Resets the transform to it's original state."), EditorStyles.miniButton, GUILayout.Width("Reset".GetWidth(EditorStyles.miniFont) + 12))) { Undo.RegisterCompleteObjectUndo(targets, "Transform Reset"); for (int i = 0; i < Selection.transforms.Length; i++) { Transform selectedTransform = Selection.transforms[i]; selectedTransform.Reset(); SnapSettings.DeleteKey("Toggle" + "Snap" + selectedTransform.GetInstanceID()); SnapSettings.DeleteKey("Toggle" + "Grid" + selectedTransform.GetInstanceID()); EditorUtility.SetDirty(selectedTransform); deleteBreak = true; } return; } Separator(false); // Snap Button snap = ShowToggleButton("Snap", "Toggles the snapping of the transform to the grid. See Magicolo's Tools/Snap Settings to change the snap settings.", EditorStyles.miniButtonLeft); EditorGUI.BeginChangeCheck(); grid = ShowToggleButton("Grid", "Toggles the display of the grid. See Magicolo's Tools/Snap Settings to change the grid display settings.", EditorStyles.miniButtonRight); if (EditorGUI.EndChangeCheck()) { SceneView.RepaintAll(); } // Add Button if (GUILayout.Button(new GUIContent(". Add .", "Adds a child to the transform."), EditorStyles.miniButtonLeft, GUILayout.Width("Add".GetWidth(EditorStyles.miniFont) + 12))) { for (int i = 0; i < Selection.transforms.Length; i++) { Transform selectedTransform = Selection.transforms[i]; Undo.RegisterCreatedObjectUndo(selectedTransform.AddChild("New Child").gameObject, "New Child"); EditorUtility.SetDirty(selectedTransform); } } // Sort Button if (GUILayout.Button(new GUIContent(". Sort .", "Sorts the immediate children of the transform alphabetically."), EditorStyles.miniButtonRight, GUILayout.Width("Sort".GetWidth(EditorStyles.miniFont) + 12))) { Undo.RegisterCompleteObjectUndo(targets, "Transform Sort"); for (int i = 0; i < Selection.transforms.Length; i++) { Transform selectedTransform = Selection.transforms[i]; selectedTransform.SortChildren(); EditorUtility.SetDirty(selectedTransform); } } EditorGUILayout.EndHorizontal(); }
public static GameObject CreateObject(this UnityEngine.MonoBehaviour load, GameObject obj, Transform parent = null) { if (Object.Instantiate(obj) is GameObject go) { parent?.AddChild(go.transform); return(go); } return(null); }
public Slider() { RegisterService <IMouseEvents>(new MouseHandler()); RegisterService <IMouseWheel>(this); RegisterService <IPixelShader>(this); RegisterService <ILayout>(new PassDownChildrenLayout()); Value = new ObservableProperty <float>(0, v => v.Clamp(0, 1)); Transform.AddChild(new SliderHandle(Value)); }
public override void OnSceneLoaded(SceneView sceneView) { base.OnSceneLoaded(sceneView); _scenesLoaded.Add(sceneView.GetType()); var sceneName = CpUnityExtensions.GetSceneName(sceneView.GetType()); var text = textRoot.AddChild(textPrefab); text.name = sceneName; text.text = sceneName; }
public static Transform FindOrAddChild(this Transform parent, string childName) { var child = parent.FindChild(childName); if (child == null) { child = parent.AddChild(childName); } return(child); }
public static IPool CreateTypePool(Type type, int startSize = 0) { IPool pool; if (typeof(Component).IsAssignableFrom(type)) { var gameObject = new GameObject(type.Name); var reference = gameObject.AddComponent(type); gameObject.SetActive(false); Transform poolTransform = null; if (ApplicationUtility.IsPlaying) { poolTransform = Transform.AddChild(reference.name + " Pool"); reference.transform.parent = poolTransform; } var poolType = typeof(ComponentPool <>).MakeGenericType(type); pool = (IPool)Activator.CreateInstance(poolType, reference, poolTransform, startSize); } else if (typeof(GameObject).IsAssignableFrom(type)) { var reference = new GameObject(type.Name); reference.SetActive(false); Transform poolTransform = null; if (ApplicationUtility.IsPlaying) { poolTransform = Transform.AddChild(reference.name + " Pool"); reference.transform.parent = poolTransform; } pool = new GameObjectPool(reference, poolTransform, startSize); } else if (typeof(ScriptableObject).IsAssignableFrom(type)) { var poolType = typeof(ScriptablePool <>).MakeGenericType(type); pool = (IPool)Activator.CreateInstance(poolType, startSize); } else { var reference = Activator.CreateInstance(type); var poolType = typeof(Pool <>).MakeGenericType(type); pool = (IPool)Activator.CreateInstance(poolType, reference, startSize); } return(pool); }
static bool Prepare(Transform rootTransform) { meshGroupHolder = rootTransform.FindChild("MeshGroup"); if (meshGroupHolder != null) { meshGroupHolder.SetAsLastSibling(); return(false); } else { meshGroupHolder = rootTransform.AddChild("MeshGroup"); return(true); } }
/// <summary> /// 添加子节点并绑定组件 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="parent"></param> /// <returns></returns> public static T AddChildComponent <T>(this Transform parent) where T : MonoBehaviour { //已经存在,就直接返回 T t = parent.GetComponentInChildren <T>(); if (t != null) { return(t); } //不存在,重新创建 GameObject go = new GameObject(); t = go.AddComponent <T>(); parent.AddChild(go.transform); go.name = typeof(T).ToString(); return(t); }
public ColorPickerExample() { var mouse = new MouseHandler(); RegisterService <IMouseEvents>(mouse); RegisterService <IMouseWheel>(mouse); RegisterService <ILayout>(this); label = new Label { Text = "This is simple example showing 'fake' shader to generate color wheel. Fake, because it is rendered by CPU, so the performance will be low", Padding = Vector2.One * 40 }; picker = new ColorPicker(); Transform.AddChild(label); Transform.AddChild(picker); }
public MessagePopup(string text, float time) { RegisterService <IRenderer>(this); label = new Label { Text = text, }; label.Transform.Pivot = Vector2.Half; label.Transform.Anchor = new Anchor(Vector2.Half, Vector2.Half); label.Transform.Size = new Vector2(200, 150); sw.Start(); Transform.Anchor = new Anchor(Vector2.Zero, Vector2.One); Transform.AddChild(label); this.time = time; }
public static IPool CreatePrefabPool(object reference, int startSize = 0) { IPool pool; if (reference is Component) { var component = (Component)reference; Transform poolTransform = null; if (ApplicationUtility.IsPlaying) { poolTransform = Transform.AddChild(component.name + " Pool"); } var poolType = typeof(ComponentPool <>).MakeGenericType(reference.GetType()); pool = (IPool)Activator.CreateInstance(poolType, reference, poolTransform, startSize); } else if (reference is GameObject) { var gameObject = (GameObject)reference; Transform poolTransform = null; if (ApplicationUtility.IsPlaying) { poolTransform = Transform.AddChild(gameObject.name + " Pool"); } pool = new GameObjectPool(gameObject, poolTransform, startSize); } else if (reference is ScriptableObject) { var poolType = typeof(ScriptablePool <>).MakeGenericType(reference.GetType()); pool = (IPool)Activator.CreateInstance(poolType, reference, startSize); } else { var poolType = typeof(Pool <>).MakeGenericType(reference.GetType()); pool = (IPool)Activator.CreateInstance(poolType, reference, startSize); } return(pool); }
/// <summary> /// 实例化预设体并添加到子节点 /// </summary> /// <param name="parent"></param> /// <param name="prefab"></param> /// <returns></returns> static public GameObject AddPrefabChild(this Transform parent, GameObject prefab) { if (parent == null || prefab == null) { Debug.LogError("parent or prefab is null"); return(null); } GameObject go = GameObject.Instantiate(prefab) as GameObject; if (go != null) { parent.AddChild(go.transform); go.name = prefab.name; } else { Debug.LogError("Instantiate a prefab failed : " + prefab.name); } return(go); }
public void OnAddClick() { index++; var item = imageParent.AddChild(image.gameObject); var pos = image.transform.localPosition; item.transform.localPosition = new Vector3(pos.x + (index + 1) * 100, pos.y + (index + 1) * 100, 0); UIDynamicRawImage data = item.transform.Find("RawImage/DynamicImage").GetComponent <UIDynamicRawImage>(); string imageName = paths[pathIndex]; data.SetImage(imageName); data.gameObject.name = imageName; pathIndex++; if (pathIndex >= paths.Count) { pathIndex = 0; } images.Add(data); }
/// <summary> /// /// </summary> /// <param name="par"></param> /// <param name="initializeProperties">A method that initializes properties on the gameobject before OnSpawned message is called.</param> /// <returns></returns> internal SpawnedObjectController Spawn(Vector3 pos, Quaternion rot, Transform par, System.Action <GameObject> initializeProperties) { if (_instances.Count == 0) { int cnt = this.Count; int newSize = cnt + ResizeBuffer; if (LimitAmount > 0) { newSize = Mathf.Min(newSize, LimitAmount); } if (newSize > cnt) { for (int i = cnt; i < newSize; i++) { _instances.Add(CreateCacheInstance(i)); } } else { return(null); } } //var cntrl = _instances[0]; //_instances.RemoveAt(0); var cntrl = _instances.Pop(); _activeInstances.Add(cntrl); par.AddChild(cntrl.transform); cntrl.transform.position = pos; cntrl.transform.rotation = rot; if (initializeProperties != null) { initializeProperties(cntrl.gameObject); } cntrl.SetSpawned(); return(cntrl); }
public RemoveVoxelEditingTool(Action <Entity> setVoxelRender, World world, PhysicsSystem physicsSystem, Entity entity) : base(world, physicsSystem, entity) { _displaySpaceEntity = world.CreateEntity(); var voxelSpace = new VoxelSpace(1, 1, _displaySpaceEntity); _displaySpaceEntity.Set(voxelSpace); var spaceTransform = new Transform(); _displaySpaceEntity.Set(spaceTransform); _displayGridEntity = world.CreateEntity(); _displayGridEntity.Set(new LightVertexResources()); _displayGridEntity.Set(new VoxelGrid(1, 1, voxelSpace, Vector3i.Zero)); voxelSpace[Vector3i.Zero] = _displayGridEntity; setVoxelRender(_displayGridEntity); var gridTransform = new Transform(); spaceTransform.AddChild(gridTransform); _displayGridEntity.Set(gridTransform); _displayGridEntity.Disable(); }
public static GameObject GetOrAddChild(this Transform parent, string resourceURI, string childName = null) { if (childName == null) { childName = Load(resourceURI).name; } Transform c = parent.Find(childName); if (c != null) { return(c.gameObject); } GameObject child = parent.AddChild(resourceURI); child.name = childName; return(child); }
void OnLoadImageCallBack(string newPath, Object obj) { if (obj != null) { Texture2D data = (Texture2D)obj; texture2dDic[data] = newPath; } else { Debug.Log("can not load obj:" + newPath); } taskIndex--; texture2dList.Clear(); if (taskIndex == 0)//全都加载完 { foreach (var item in texture2dDic) { texture2dList.Add(item.Key); } texture2dList.Sort((emp1, emp2) => emp1.width.CompareTo(emp2.width)); int count = texture2dList.Count; for (int i = 0; i < count; i++) { index++; Texture2D tex2D = texture2dList[i]; var item = imageParent.AddChild(root.gameObject); objs.Add(item); var pos = imageParent.transform.localPosition; item.transform.localPosition = new Vector3(pos.x + (index + 1) * 100, pos.y + (index + 1) * 100, 0); UIPackingRawImage image = item.transform.Find("RawImage/DynamicImage").GetComponent <UIPackingRawImage>(); image.SetGroup(baseUIPackingRawImage.mGroup); image.SetImage(texture2dDic[tex2D], tex2D); } texture2dDic.Clear(); texture2dList.Clear(); } }
void Awake() { //得到UI根节点对象、脚本节点对象 _GoCanvasRoot = GameObject.FindGameObjectWithTag(UIConfig.SysTagCanvas); _TraUIScriptsNode = _GoCanvasRoot.transform.FindChildNode(UIConfig.SysScriptManagerNode); //把本脚本实例,作为“脚本节点对象”的子节点。 _TraUIScriptsNode.AddChild(gameObject.transform); //得到“顶层面板”、“遮罩面板” _GoTopPanel = _GoCanvasRoot; _GoMaskPanel = _GoCanvasRoot.transform.FindChildNode("_UIMaskPanel").gameObject; //得到UI摄像机原始的“层深” _UICamera = GameObject.FindGameObjectWithTag("_TagUICamera").GetComponent <Camera>(); if (_UICamera != null) { //得到UI摄像机原始“层深” _OriginalUICameralDepth = _UICamera.depth; } else { Debug.Log(GetType() + "/Start()/UI_Camera is Null!,Please Check! "); } }
public ColorPicker() { layout.Owner = this; var mouseHandler = new MouseHandler(); RegisterService <ILayout>(this); RegisterService <IMouseEvents>(mouseHandler); RegisterService <IMouseWheel>(mouseHandler); hueSlider = new Slider(); hueSlider.Transform.Location = new Vector2(0, 0); hueSlider.Transform.Size = new Vector2(20, 0); colorBox = new ColorBox(); colorBox.Hue.bind(hueSlider.Value); Transform.AddChild(hueSlider); Transform.AddChild(colorBox); }
private BinaryTreeNode <T> NodeAdded(ITreeNode <T> old, ITreeNode <T> nnew) { if (old != null) { nodeToComponentDict[old].OnNodeClick -= NewNode_OnNodeClick; Transform.RemoveChild(nodeToComponentDict[old]); nodeToComponentDict.Remove(old); } if (nnew != null) { var newNode = new BinaryTreeNode <T>(nnew); nodeToComponentDict[nnew] = newNode; nnew.Left.OnChange += NodeAddedHelper; nnew.Right.OnChange += NodeAddedHelper; newNode.OnNodeClick += NewNode_OnNodeClick; Transform.AddChild(newNode); return(newNode); } return(null); }
public Player(string name = "Player") : base(name, null) { Tag = "Player"; AddComponent(new Animator()); AddComponent(new Collider()); AddComponent(new PhysicsBody()); Animator = GetComponent <Animator>(); Collider = GetComponent <Collider>(); Body = GetComponent <PhysicsBody>(); Body.Mass = 10; Body.Elasticity = 0; Collider.CoefficientOfFriction = 0.2; Animator.Add(Resources.GetAnimation("Idle")); Animator.Add(Resources.GetAnimation("Running")); Animator.Add(Resources.GetAnimation("Jumping")); Camera = new Camera("Player Camera"); Transform.AddChild(Camera.Transform); }
public static Transform CloneTransformTree(Animator parser, Transform frame, Transform parent) { Transform trans = new Transform(parser.file); GameObject gameObj = new GameObject(parser.file); gameObj.m_Name = (string)frame.m_GameObject.instance.m_Name.Clone(); UniqueName(parser, gameObj); gameObj.AddLinkedComponent(trans); parser.m_Avatar.instance.AddBone(parent, trans); trans.m_LocalRotation = frame.m_LocalRotation; trans.m_LocalPosition = frame.m_LocalPosition; trans.m_LocalScale = frame.m_LocalScale; CopyUnknowns(frame, trans); trans.InitChildren(frame.Count); for (int i = 0; i < frame.Count; i++) { trans.AddChild(CloneTransformTree(parser, frame[i], trans)); } return trans; }
public TreeExample() { mouse = new MouseHandler(); RegisterService <ILayout>(this); RegisterService <IMouseEvents>(mouse); var random = new System.Random(); addRandomNode = new Button("Add random node"); tree = new BSTTree <int>(); binaryTreeView = new BinaryTreeView <int>(tree); label = new Label { Text = "Click on nodes", Padding = new Common.Algebra.Vector2(10, 10) }; addRandomNode.Transform.Size = new Common.Algebra.Vector2(220, 40); addRandomNode.OnClick += () => tree.Insert(random.Next(-20, 20)); binaryTreeView.OnNodeClick += (node) => { popup = new MessagePopup(node.Value.ToString(), 2); mouse.Block(true); popup.TimePassed += () => { Transform.RemoveChild(popup); mouse.Block(false); popup = null; }; Transform.AddChild(popup); }; Transform.AddChild(addRandomNode); Transform.AddChild(binaryTreeView); Transform.AddChild(label); }
void MergeFrame(Transform srcParent, Transform destParent) { for (int i = 0; i < destParent.Count; i++) { var dest = destParent[i]; for (int j = 0; j < srcParent.Count; j++) { var src = srcParent[j]; if (src.m_GameObject.instance.m_Name == dest.m_GameObject.instance.m_Name) { MergeFrame(src, dest); srcParent.RemoveChild(j); destParent.RemoveChild(i); destParent.InsertChild(i, src); break; } } } if (srcParent.m_GameObject.instance.m_Name == destParent.m_GameObject.instance.m_Name) { while (destParent.Count > 0) { var dest = destParent[0]; destParent.RemoveChild(0); srcParent.AddChild(dest); } } else { while (srcParent.Count > 0) { var src = srcParent[0]; srcParent.RemoveChild(0); destParent.AddChild(src); } } }
public void MergeFrame(Transform srcFrame, int destParentId) { Transform srcParent = new Transform(srcFrame.file); GameObject srcGameObj = new GameObject(srcFrame.file); srcGameObj.AddLinkedComponent(srcParent); srcParent.InitChildren(1); srcParent.AddChild(srcFrame); Transform destParent; if (destParentId < 0) { destParent = new Transform(srcFrame.file); GameObject destGameObj = new GameObject(srcFrame.file); destGameObj.AddLinkedComponent(destParent); destParent.InitChildren(1); destParent.AddChild(Parser.RootTransform); Parser.m_GameObject.instance.RemoveLinkedComponent(Parser); } else { destParent = Frames[destParentId]; } MergeFrame(srcParent, destParent); if (destParentId < 0) { //Parser.RootTransform = srcParent[0]; srcParent[0].m_GameObject.instance.AddLinkedComponent(Parser); srcParent.RemoveChild(0); destParent.m_GameObject.instance.RemoveLinkedComponent(destParent); srcFrame.file.RemoveSubfile(destParent.m_GameObject.instance); srcFrame.file.RemoveSubfile(destParent); } srcGameObj.RemoveLinkedComponent(srcParent); srcFrame.file.RemoveSubfile(srcGameObj); srcFrame.file.RemoveSubfile(srcParent); if (Parser.file.Bundle != null) { Parser.file.Bundle.RegisterForUpdate(Parser.m_GameObject.asset); } InitLists(); Changed = true; }
public static Transform CreateTransformTree(Animator parser, ImportedFrame frame, Transform parent) { Transform trans = new Transform(parser.file); GameObject gameObj = new GameObject(parser.file); gameObj.m_Name = (string)frame.Name.Clone(); UniqueName(parser, gameObj); gameObj.AddLinkedComponent(trans); parser.m_Avatar.instance.AddBone(parent, trans); Vector3 t, s; Quaternion r; frame.Matrix.Decompose(out s, out r, out t); t.X *= -1; Vector3 euler = FbxUtility.QuaternionToEuler(r); euler.Y *= -1; euler.Z *= -1; trans.m_LocalRotation = FbxUtility.EulerToQuaternion(euler); trans.m_LocalPosition = t; trans.m_LocalScale = s; trans.InitChildren(frame.Count); for (int i = 0; i < frame.Count; i++) { trans.AddChild(CreateTransformTree(parser, frame[i], trans)); } return trans; }