Наследование: MonoBehaviour
Пример #1
0
 void Start()
 {
     _block          = GetComponent<PlayerBlock>();
     _inputToggle    = GetComponent<ToggleEnableInput>();
     _playersounds   = GetComponent<PlayerSounds>();
     _movement       = GetComponent<PlayerMovement>();
     _rigidBody      = GetComponent<Rigidbody>();
 }
 void Start()
 {
     _block          = GetComponent<PlayerBlock>();
     _rigidBody      = GetComponent<Rigidbody>();
     _inputToggle    = GetComponent<ToggleEnableInput>();
     _movement       = GetComponent<PlayerMovement>();
     _damageAmount   = GetComponentInChildren<Damage>();
     _damageBase     = _damageAmount.damage;
 }
 void Start()
 {
     _inputToggle    = GetComponent<ToggleEnableInput>();
     _attack         = GetComponent<PlayerAttack>();
     _block          = GetComponent<PlayerBlock>();
     _movement       = GetComponent<PlayerMovement>();
     _rotation       = GameObject.Find("CameraController").GetComponent<CameraMovement>();
     _dodge          = GetComponent<PlayerRoll>();
 }
Пример #4
0
    public static void SplitBlock(this PlayerBlock p, Bidivisor b)
    {
        Vector2 pos = p.GetGlobalPosition();

        pos.x = pos.x * -1 + 1920;
        PackedScene blockScene = (PackedScene)ResourceLoader.Load("res://Objects/PlayerBlock.tscn");

        PlayerBlock[] newBlocks = new PlayerBlock[2];
        for (int i = 0; i < 2; i++)
        {
            newBlocks[i]             = (PlayerBlock)blockScene.Instance();
            newBlocks[i].duplicating = 8;
            b.GetTree().GetRoot().GetChild(0).GetChild(1).AddChild(newBlocks[i]);
            newBlocks[i].Set("rotation_degrees", -b.GetRotationDegrees() - 45 + 90 * i);
            newBlocks[i].GlobalPosition = pos;
            newBlocks[i].jumpIndex      = p.jumpIndex == 0 ? 1 : 0;
            newBlocks[i].MoveLocalY(-newBlocks[i].jump[(newBlocks[i].jumpIndex)]);
        }
        ((GameScene)(b.GetTree().GetRoot().GetChild(0))).PlayerNumber.Remove(p);
        p.QueueFree();
    }
Пример #5
0
    private void ReInitialize()
    {
        pTrigger = GameObject.Find("/Canvas MainWorld/BlockButton").GetComponent <EventTrigger>();
        Debug.Assert(pTrigger != null);

        pBlock = GetComponent <PlayerBlock>();
        Debug.Assert(pBlock != null);

        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID  = EventTriggerType.PointerDown;
        call           = new UnityAction <BaseEventData>(PointerDown);
        entry.callback = new EventTrigger.TriggerEvent();
        entry.callback.AddListener(call);
        pTrigger.triggers.Add(entry);

        entry          = new EventTrigger.Entry();
        entry.eventID  = EventTriggerType.PointerUp;
        call           = new UnityAction <BaseEventData>(PointerUp);
        entry.callback = new EventTrigger.TriggerEvent();
        entry.callback.AddListener(call);
        pTrigger.triggers.Add(entry);
    }
Пример #6
0
 void OnEnable()
 {
     PlayerStarter = this;
 }
 void Start()
 {
     _inputToggle    = GetComponent<ToggleEnableInput>();
     _block          = GetComponent<PlayerBlock>();
     _cameraMovement = GameObject.Find("CameraController").GetComponent<CameraMovement>();
 }
Пример #8
0
 private void Awake()
 {
     Instance = this;
     SpawnPlayer();
 }
Пример #9
0
 private void Awake()
 {
     m_BlockAction = GetComponentInParent <PlayerBlock>();
 }
Пример #10
0
    public override void OnInspectorGUI()
    {
        //不需要base.OnInspectorGUI ();
        EditorGUILayout.BeginVertical();

        bool oldUpperLayer = voxelMap.isUpperLayer;

        voxelMap.isUpperLayer = EditorGUILayout.Toggle("is up layer:", voxelMap.isUpperLayer);
        if (oldUpperLayer != voxelMap.isUpperLayer)
        {
            //ChangeActiveLayer ();
        }

        EditorGUILayout.BeginHorizontal();
        bool oldDispUpeerLayerGizmo = voxelMap.displayUpperGizmo;

        voxelMap.displayUpperGizmo = EditorGUILayout.Toggle("Switch Gizmo Upper / Lower :", voxelMap.displayUpperGizmo);
        if (oldDispUpeerLayerGizmo != voxelMap.displayUpperGizmo)
        {
            //ChangeActiveLayer ();
        }

        EditorGUILayout.EndHorizontal();

        //如果旧的地图尺寸和新的不同,则进行
        Vector2 oldSize = voxelMap.mapSize;

        voxelMap.mapSize = EditorGUILayout.Vector2Field("Voxel Map Size", voxelMap.mapSize);
        if (oldSize != voxelMap.mapSize)
        {
            UpdateCalculations();
        }

        //如果基准方块被改变则重新建立笔刷
        GameObject oldBasicBlock = voxelMap.basicBlock;

        voxelMap.basicBlock = (GameObject)EditorGUILayout.ObjectField("Basic Object:", voxelMap.basicBlock, typeof(GameObject), false);
        if (oldBasicBlock != voxelMap.basicBlock)
        {
            UpdateCalculations();
            voxelMap.blockID = 0;
            CreateBrush();
        }

        //选择需要加入保存的方块类型
        blockType = (BlockType)EditorGUILayout.EnumPopup("Block Type", blockType);
        //输入对于方块合适的名字
        blockName = (string)EditorGUILayout.TextField("New Blcok Name", blockName);
        if (GUILayout.Button("Add New Blcoksd"))
        {
            //必须命名
            if (blockName != "")
            {
                if (blockType != BlockType.None)
                {
                    switch (blockType)
                    {
                    case BlockType.Floor:
                        FloorBlock floorBlock = new FloorBlock(blockName);
                        //为了防止反序列化时没有数据恢复,需要手动赋值一次
                        floorBlock.BlockType = BlockType.Floor;
                        voxelMap.allBlocks.Add(floorBlock);
                        break;

                    case BlockType.Wall:
                        WallBlock wallBlock = new WallBlock(blockName);
                        wallBlock.BlockType = BlockType.Wall;
                        voxelMap.allBlocks.Add(wallBlock);
                        break;

                    case BlockType.Player:
                        PlayerBlock playerBlock = new PlayerBlock(blockName);
                        playerBlock.BlockType = BlockType.Player;
                        voxelMap.allBlocks.Add(playerBlock);
                        break;

                    case BlockType.Enemy:
                        EnemyBlock enemyBlock = new EnemyBlock(blockName);
                        enemyBlock.BlockType = BlockType.Enemy;
                        voxelMap.allBlocks.Add(enemyBlock);
                        break;

                    case BlockType.Door:
                        DoorBlock doorBlock = new DoorBlock(blockName);
                        doorBlock.BlockType = BlockType.Door;
                        voxelMap.allBlocks.Add(doorBlock);
                        break;
                    }

                    blockType = BlockType.None;
                }
            }
        }



        //保存所有的类型进入对应的数组
        //QuickSort (voxelMap.allBlocks, 0, voxelMap.allBlocks.Count);
        //List<BasicBlock> tmp = new List<BasicBlock> ();
        //tmp [1] = new FloorBlock ("hy");
        //tmp [0] = new
        //QuickSorting.QuickSort ();

        //显示现在保存的方块类型
        for (int i = 0; i < voxelMap.allBlocks.Count; i++)
        {
            EditorGUILayout.BeginHorizontal();
            voxelMap.allBlocks [i].m_gameobject = (GameObject)EditorGUILayout.ObjectField(voxelMap.allBlocks [i].m_name + " " + voxelMap.allBlocks [i].GetType(), voxelMap.allBlocks [i].m_gameobject, typeof(GameObject), false);
            //删除预设方块
            if (GUILayout.Button("Delete"))
            {
                Debug.Log("Delete" + i + voxelMap.allBlocks [i].m_name);
                voxelMap.allBlocks.Remove(voxelMap.allBlocks [i]);
            }
            EditorGUILayout.EndHorizontal();
        }

        //refresh brush mesh to new brush,
        UpdateBrush(voxelMap.GetBlockBrush.m_gameobject.GetComponentInChildren <MeshFilter> (),
                    voxelMap.GetBlockBrush.m_gameobject.GetComponentInChildren <MeshRenderer> ());
        if (GUILayout.Button("Clear Blocks"))
        {
            if (EditorUtility.DisplayDialog("Clear map's blocks?", "Are you sure?", "Clear", "Do not clear"))
            {
                ClearMap();
            }
        }

        EditorGUILayout.EndVertical();
    }