示例#1
0
    // ------------------------------------------------------------------------

    private void checkToTriggerMine(GameObject g)
    {
        MoveActor actor = g.GetComponent <MoveActor>();

        if (actor && actor.Walking)
        {
            triggered = true;
        }
    }
示例#2
0
    // ------------------------------------------------------------------------

    public virtual void turnRight()
    {
        MoveActor m = GetComponent <MoveActor>();

        if (m)
        {
            m.turnRight();
        }
    }
示例#3
0
    public override bool grabbed(GameObject by)
    {
        MoveActor actor = by.GetComponent <MoveActor>();
        Vector3   tmp   = actor.transform.position;

        actor.set(transform.position);
        by.transform.RotateAround(by.transform.position, Vector3.up, 180);
        transform.position = tmp;
        GetComponent <DestroyActor>().destroy();
        return(true);
    }
示例#4
0
    // ------------------------------------------------------------------------

    public virtual void lift()
    {
        if (!Enable)
        {
            Enable = true;
        }
        MoveActor m = GetComponent <MoveActor>();

        if (m)
        {
            m.lift();
        }
    }
示例#5
0
    // ------------------------------------------------------------------------

    public virtual bool move(Vector3 direction)
    {
        if (!Enable)
        {
            Enable = true;
        }
        MoveActor m = GetComponent <MoveActor>();

        if (m)
        {
            return(m.move(direction));
        }
        return(false);
    }
示例#6
0
    // ------------------------------------------------------------------------

    public virtual bool pushed(GameObject by)
    {
        if (!Enable)
        {
            Enable = true;
        }
        MoveActor m = GetComponent <MoveActor>();

        if (m)
        {
            return(m.push(by));
        }
        return(false);
    }
示例#7
0
    // ------------------------------------------------------------------------

    private void updateElementPosition()
    {
        RaycastHit hit;

        if (Debug.isDebugBuild)
        {
            Debug.DrawRay(transform.position + offsetVector, Vector3.down * 1.5f, Color.red);
        }
        if (element && Physics.Raycast(transform.position + offsetVector, Vector3.down, out hit, 1.5f, 1 << 8))
        {
            if (Debug.isDebugBuild)
            {
                Debug.Log("Lift update element position for " + element.name + " / " + hit.collider.gameObject.name);
            }
            MoveActor actor = element.GetComponentInChildren <MoveActor>();
            if (actor)
            {
                actor.set(hit.point);
            }
        }
    }
示例#8
0
    private void ShowFinger()
    {
        if (configItem == null || configItem.Guide_type == (int)GuideType.tip || configItem.Guide_type == (int)GuideType.introduction)
        {
            return;
        }

        fingerTrans.gameObject.SetActive(true);
        fingerTrans.localPosition = new Vector3(targetWorldUIPos.x, targetWorldUIPos.y, 0);
        switch (configItem.Guide_type)
        {
        case (int)GuideType.click:
            fingerAnim.Play("UI_FINGER_CLICK");
            break;

        case (int)GuideType.link:

            fingerAnim.Stop();

            List <string> aimsArr = configItem.GetAimsArr();

            cycleActor = new CycleActor();

            for (int i = 1; i < aimsArr.Count; i++)
            {
                string aims = aimsArr[i];

                RectTransform itemTrans = (RectTransform)GameObject.Find(aims).transform;

                MoveActor moveActor = new MoveActor((RectTransform)fingerTrans, new Vector3(itemTrans.localPosition.x, itemTrans.localPosition.y, 0), 0, 0.5f);
                cycleActor.AddNode(moveActor);
            }

            MoveActor moveBackActor = new MoveActor((RectTransform)fingerTrans, new Vector3(targetWorldUIPos.x, targetWorldUIPos.y, 0), 0, 0.3f);
            cycleActor.AddNode(moveBackActor);
            cycleActor.OnExecute();

            break;
        }
    }
示例#9
0
        private void Update()
        {
            RaycastHit hit;

            if (Physics.Raycast(_camera.ScreenPointToRay(Input.mousePosition), out hit))
            {
                Vector2Int selectedCellT = Grid.GetCellByWorldPos(hit.point);
                Vector2Int selectedCell;
                if (selectedCellT != new Vector2Int(-1, -1))
                {
                    selectedCell = selectedCellT;
                    _cursorPos   = Grid.GetCellCenterWorldPosByCell(selectedCell);
                    if (Input.GetButtonDown("Fire1"))
                    {
                        Grid.Cells[selectedCell.x, selectedCell.y].AddMoveValue(10);
                    }

                    if (Input.GetButtonDown("Fire2"))
                    {
                        Grid.GetCell(selectedCell).Iswall = true;
                        Grid.Cells[selectedCell.x, selectedCell.y].AddMoveValue(500);
                    }

                    if (Input.GetButtonDown("Jump"))
                    {
                        Grid.originePos = selectedCell;
                        Grid.CalculateFlowField();
                    }

                    if (Input.GetKey("a"))
                    {
                        MoveActor MA = Instantiate(prefabCube, hit.point + new Vector3(0, 0.5f, 0), quaternion.identity);
                        MA.grid = Grid;
                    }
                }
            }
            _cursor.position = Vector3.Lerp(_cursor.position, _cursorPos, cursorSmoothFactor * Time.deltaTime);
        }
示例#10
0
    // ------------------------------------------------------------------------

    void Start()
    {
        actor     = GetComponent <MoveActor>();
        direction = transform.forward;
    }
    // ------------------------------------------------------------------------

    void Start()
    {
        actor = GetComponent <MoveActor>();
    }