private static Collider CreateSolidCollider(SceneTriggerShape shape, Vector3 size, out GameObject go) { Collider collider = null; switch (shape) { case SceneTriggerShape.Box: go = GameObject.CreatePrimitive(PrimitiveType.Cube); var boxCollider = go.GetComponent <BoxCollider> (); collider = boxCollider; break; case SceneTriggerShape.Sphere: go = GameObject.CreatePrimitive(PrimitiveType.Sphere); var sphereCollider = go.GetComponent <SphereCollider> (); collider = sphereCollider; break; default: go = null; break; } go.transform.localScale = size; return(collider); }
public static MapArea CreateMapArea(SceneTriggerShape shape) { GameObject root = MapEventHelper.FindAreaRoot(); GameObject go = null; var collider = CreateSolidCollider(shape, new Vector3(2, 2, 2), out go); collider.isTrigger = true; var node = go.AddComponent <MapArea> (); go.transform.SetParent(root.transform); go.transform.position = MapManager.selectionPosition; go.transform.localScale = Vector3.one; go.transform.rotation = Quaternion.identity; var child = new GameObject("text"); child.transform.parent = go.transform; child.transform.localPosition = Vector3.zero; child.transform.localScale = Vector3.one; child.transform.rotation = Quaternion.identity; /*var text = child.AddComponent<TextMesh> (); * text.anchor = TextAnchor.MiddleCenter; * text.alignment = TextAlignment.Center; * text.text = node.displayName;*/ Selection.activeGameObject = go; return(node); }
private static Collider CreateCollider(GameObject go, SceneTriggerShape shape, Vector3 size) { Collider collider = null; switch (shape) { case SceneTriggerShape.Box: var boxCollider = go.AddComponent <BoxCollider> (); boxCollider.size = new Vector3(size.x, size.y, size.z); collider = boxCollider; break; case SceneTriggerShape.Sphere: var sphereCollider = go.AddComponent <SphereCollider> (); sphereCollider.radius = size.x / 2; collider = sphereCollider; break; } return(collider); }
public static void CreateTrigger(GameObject target, SceneTriggerType tiggerType, string triggerData, SceneTriggerShape triggerShape, Vector3 nodeSize) { GameObject root = MapEventHelper.FindTriggerRoot(); if (target == root) { target = null; } var go = new GameObject("触发器-" + triggerData); var node = go.AddComponent <SceneTrigger> (); node.triggerType = tiggerType; node.triggerData = triggerData; node.shape = triggerShape; go.transform.SetParent(root.transform); go.transform.position = target != null?target.transform.position:MapManager.selectionPosition; go.transform.localScale = Vector3.one; go.transform.rotation = Quaternion.identity; var collider = CreateCollider(go, triggerShape, nodeSize); collider.isTrigger = true; //map.AddTrigger (node); Selection.activeGameObject = go; }