//controls change void altControl() { FusionPlayer fp = GetComponentInParent <FusionPlayer> (); if (fp != null) { if (fp.keyBoard) { keyBoard = true; } else { keyBoard = false; } if (keyBoard) { movementX = "Horizontal_P" + owner; movementY = "Vertical_P" + owner; } else { movementX = "LeftStickX_P" + owner; movementY = "LeftStickY_P" + owner; } } }
// Update is called once per frame void Update() { altControl(); //detect whether input sth if (Input.GetAxis("LeftStickX_P" + owner) == 0 && Input.GetAxis("LeftStickY_P" + owner) == 0) { noInput = true; } else { noInput = false; } sp = GetComponentInParent <SoloPlayers> (); //two smaller ones fp = GetComponentInParent <FusionPlayer> (); //two player together sr = GetComponent <SpriteRenderer> (); Debug.Log(initPos); transform.localPosition = initPos + new Vector3(placement.x, placement.y, 0); //if it is fusionIndicator, it shows the in-between arrow of both arrows if (fusionIndicator == false) { //Debug.Log(movementX); //direction pointing at pointDirection = new Vector3((Input.GetAxis(movementX)), (Input.GetAxis(movementY)) * -1, 0); //Debug.Log(pointDirection); if (pointDirection != Vector3.zero) { //calc the angle it points at float angle = Mathf.Atan2(pointDirection.y, pointDirection.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); } placement = new Vector2(Input.GetAxis(movementX) + offset.x, (Input.GetAxis(movementY) * -1) + offset.y).normalized; //solo player is not null if (sp != null) { if (sp.touchingGround == true) { if (placement.y <= 0) { transform.localPosition = new Vector2(placement.x, 0); } if (placement.x == 0) { placement.x = sp.directionModifier; placement.y = 0; } } } //fusion player is not null if (fp != null) { if (fp.touchingGround == true) { if (placement.y <= 0) { transform.localPosition = new Vector2(placement.x, 0); } } } } else { placement = new Vector2(fp.stickPosX, fp.stickPosY * -1); pointDirection = new Vector3(fp.stickPosX, fp.stickPosY * -1, 0); if (pointDirection != Vector3.zero) { //Debug.Log("in"); float angle = Mathf.Atan2(pointDirection.y, pointDirection.x) * Mathf.Rad2Deg; //transform.LookAt(transform.position+pointDirection); transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); } } //Debug.Log(transform.localRotation.eulerAngles.z); //try to flip it but not working now if (transform.localRotation.eulerAngles.z <= 180 && transform.localRotation.eulerAngles.z > 90) { Debug.Log("flip"); Debug.Log(transform.localRotation.eulerAngles.z); GetComponent <SpriteRenderer> ().flipY = true; } else if (transform.localRotation.eulerAngles.z >= 0 && transform.localRotation.eulerAngles.z <= 90) { Debug.Log("unflip"); GetComponent <SpriteRenderer> ().flipY = false; } // if (pointDirection == Vector3.zero) { // sr.color = alphadOut; // } else { if (overlapping) { sr.color = fusionColor; } else { if (owner == 1) { sr.color = p1Color; } if (owner == 2) { sr.color = p2Color; } if (fusionIndicator) { sr.color = fusionColor; } } // } }