示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
    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);
    }
示例#4
0
    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;
    }