private void createCreator()
    {
        creatorContainer = Instantiate(creatorPrefab).transform;
        creator          = creatorContainer.Find("CreatorEnt").GetComponent <CreatorController>();
        creatorUI        = creatorContainer.Find("CreatorUI").GetComponent <CreatorHud>();
        camera.setFollowing(creator.gameObject);

        if (Input.GetJoystickNames().Length > 1)
        {
            creator.setController(2);
        }
        else
        {
            creator.setController(1);
        }
    }
示例#2
0
    private void createCreator()
    {
        creatorContainer = Instantiate(creatorPrefab).transform;
        creator          = creatorContainer.Find("CreatorEnt").GetComponent <CreatorController>();
        creatorUI        = creatorContainer.Find("CreatorUI").GetComponent <CreatorHud>();
        creatorRenderer  = creator.gameObject.GetComponent <SpriteRenderer>();
        camera.setFollowing(creator.gameObject);

        if (twoControllers)
        {
            creator.setController(2);
        }
        else
        {
            creator.setController(1);
        }
    }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        if (!ui)
        {
            ui = GameObject.Find("CreatorUI").GetComponent <CreatorHud>();
            ui.updateMoneyText(money);
            setObjRenderer();
        }
        float inputXAmount = Input.GetAxis("L_XAxis_" + contToUse);
        float inputYAmount = Input.GetAxis("L_YAxis_" + contToUse);

        float rTriggerAmount = Input.GetAxis("TriggersR_" + contToUse);

        if (Input.GetButtonDown("A_" + contToUse))
        {
            spawnGameObject();
        }

        if (Input.GetButtonDown("RB_" + contToUse))
        {
            if (currObj < availableObjs.Count - 1)
            {
                currObj++;
            }
            else
            {
                currObj = 0;
            }
            setObjRenderer();
        }
        if (Input.GetButtonDown("LB_" + contToUse))
        {
            if (currObj > 0)
            {
                currObj--;
            }
            else
            {
                currObj = availableObjs.Count - 1;
            }
            setObjRenderer();
        }

        // Calculate how much the velocity should change based on xAccel
        Vector3 direction = new Vector3(inputXAmount, -inputYAmount, 0.0f) * (1f - (2 * rTriggerAmount));

        transform.Translate(moveSpeed * direction * Time.deltaTime);

        GetComponent <CircleCollider2D> ().attachedRigidbody.WakeUp();

        Trap thisObj = availableObjs [currObj];
        // Reset the snapped object if out of range of any cubes
        LayerMask platforms = LayerMask.GetMask("Platforms");

        if (snappedEdge == null || !GetComponent <CircleCollider2D> ().IsTouchingLayers(platforms) ||
            Input.GetButton("Y_" + contToUse) || !thisObj.canPlaceOnWalls)
        {
            // Reset the object snapped to
            snappedEdge = null;
            currObjRenderer.localPosition = new Vector3(0, 0, 0);
            currObjRenderer.eulerAngles   = new Vector3(0, 0, 0);
        }
        else
        {
            /* Update currObjectRenderer's position/rotation on the snapped edge
             * manually, as this may not be called every frame. This prevents the
             * object from being shaky when moving. */
            if (snappedEdge != null)
            {
                OnTriggerStay2D(snappedEdge.gameObject.GetComponent <BoxCollider2D> ());
            }
        }

        //Check if you can place this object right now
        canPlace = (thisObj.canPlaceInAir || snappedEdge != null);

        //Check if this object is being placed on another
        if (currObjRenderer.GetComponent <CreatorObjRenderer>().colliding)
        {
            canPlace = false;
        }
        //Check if a laser hits something
        if (thisObj.name.Equals("Laser") && !LaserHead.checkLaser(currObjRenderer.transform.position,
                                                                  currObjRenderer.transform.rotation))
        {
            canPlace = false;
        }

        Color color;

        if (canPlace)
        {
            color = new Color(1f, 1f, 1f, 0.7f);
        }
        else
        {
            color = new Color(1f, 0f, 0f, 0.3f);
        }
        currObjRenderer.GetComponent <SpriteRenderer> ().color = color;
    }