//////////////////////////////////////////////// //private void AnnoyingFuckingAngleMovementThing() // this is to fix the f*****g camera spinning around in weird angles 10% of the time when a unit moves onto a diff sided panel //{ // if (_TARGETObjectScript.objectType == CubeObjectTypes.Panel_Wall) // { // if (_lastPanelYAxis == -1) // { // _lastPanelYAxis = _TARGETPanelScript._panelYAxis; // changeWallAngle = false; // } // else // { // if (_lastPanelYAxis != _TARGETPanelScript._panelYAxis) // { // changeWallAngle = true; // } // else // { // changeWallAngle = false; // } // _lastPanelYAxis = _TARGETPanelScript._panelYAxis; // } // Debug.Log("f**k changeWallAngle " + changeWallAngle); // } //} //////////////////////////////////////////////// private void SetNextTarget() { _TARGETCubeID = _nodes[locCount]; _TARGETCubeScript = LocationManager.GetLocationScript_CLIENT(_TARGETCubeID); if (_TARGETCubeScript._platform_Panel_Cube.GetCubePanel != null) { _TARGETPanelScript = _TARGETCubeScript._platform_Panel_Cube.GetCubePanel; _TARGETObjectScript = _TARGETPanelScript.gameObject.GetComponent <ObjectScript>(); //AnnoyingFuckingAngleMovementThing(); if (MovementManager._gravityActivated) { // unitContainerTransformLOCAL.localEulerAngles = new Vector3(0, unitContainerTransformLOCAL.localEulerAngles.y, 0); // unitContainerAnglesGLOBAL.localEulerAngles = new Vector3(0, 0, 0); } else { rotateInProgress = false; if (_TARGETObjectScript.objectType != _currObjectScript.objectType) { rotateInProgress = true; } if (_TARGETObjectScript.objectType == _currObjectScript.objectType) { int currPanelYAxis = _currPanelScript._panelYAxis; int targetPanelYAxis = _TARGETPanelScript._panelYAxis; if (currPanelYAxis != targetPanelYAxis) { rotateInProgress = true; } } ChangeUnitsRotation(); ChangeCameraRotation(); } if (!LocationManager.SetUnitOnCube_CLIENT(GetComponent <UnitScript>(), _TARGETCubeID)) { Debug.LogWarning("units movement interrupted >> recalculating"); moveInProgress = false; ResetValues(); if (MovementManager.BuildMovementPath(_finalTargetScript)) { MovementManager.MakeActiveUnitMove_CLIENT(); } } } }
//////////////////////////////////////////////// private void SetNextTarget() { _currTargetCubeID = _nodes[locCount]; _currTargetScript = LocationManager.GetLocationScript_CLIENT(_currTargetCubeID); if (_currTargetScript._platform_Panel_Cube._panelScriptChild != null) { _currTargetPanelScript = _currTargetScript._platform_Panel_Cube._panelScriptChild; if (!LocationManager.SetUnitOnCube_CLIENT(GetComponent <UnitScript>(), _currTargetCubeID)) { Debug.LogWarning("units movement interrupted >> recalculating"); moveInProgress = false; ResetValues(); if (MovementManager.BuildMovementPath(_finalTargetScript)) { MovementManager.MakeActiveUnitMove_CLIENT(); } } } }
void OnMouseOver() { if (EventSystem.current.IsPointerOverGameObject()) { return; } RaycastHit hitPoint; if (Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition), out hitPoint, 100.0F)) { //Debug.Log("f**k hitPoint.gameObject " + hitPoint.transform.gameObject.name); if (!PlayerManager.CameraAgent.Camera_Pivot.CAMERA_MOVING) { _panelHitIndex = 0; int triIndex = hitPoint.triangleIndex; //Debug.Log("Hit Triangle index : " + hitPoint.triangleIndex); if (triIndex == 0 || triIndex == 1) // (if floor) To sit OnTop of panels { _panelHitIndex = 1; if (hitPoint.collider.tag == "Panel_Floor") { _activeCubeScript = cubeScriptLeft; } if (hitPoint.collider.tag == "Panel_Wall") { if (_panelYAxis == 0) { _activeCubeScript = cubeScriptRight; } if (_panelYAxis == 90) { _activeCubeScript = cubeScriptLeft; } } if (hitPoint.collider.tag == "Panel_Angle") { _activeCubeScript = cubeScriptLeft; } } else if (triIndex == 4 || triIndex == 5) // (if floor) To sit Underneath of panels { _panelHitIndex = 2; if (hitPoint.collider.tag == "Panel_Floor") { _activeCubeScript = cubeScriptRight; } if (hitPoint.collider.tag == "Panel_Wall") { if (_panelYAxis == 0) { _activeCubeScript = cubeScriptLeft; } if (_panelYAxis == 90) { _activeCubeScript = cubeScriptRight; } } if (hitPoint.collider.tag == "Panel_Angle") { _activeCubeScript = cubeScriptRight; } } else { _activeCubeScript = null; Debug.Log("Hit Triangle index NOT REGISTERED: " + triIndex); } if (MovementManager.BuildMovementPath(_activeCubeScript)) { PanelPieceChangeColor("Pink"); _movementPossible = true; } else { PanelPieceChangeColor("White"); _movementPossible = false; } } } }
////////////////////////////////////////////// void OnMouseOver() { if (EventSystem.current.IsPointerOverGameObject()) { return; } RaycastHit hitPoint; if (Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition), out hitPoint, 100.0F)) { //Debug.Log("f**k hitPoint.gameObject " + hitPoint.transform.gameObject.name); if (!PlayerManager.CameraAgent.Camera_Pivot.CAMERA_MOVING) { _panelHitIndex = 0; int[] surface1 = new int[2] { 2, 3 }; // << Put surface triangle Indexs in here int[] surface2 = new int[2] { 6, 7 }; // << Put surface triangle Indexs in here int triIndex = hitPoint.triangleIndex; //Debug.Log("Hit Triangle index : " + hitPoint.triangleIndex); if (triIndex != surface1[0] && triIndex != surface1[1] && triIndex != surface2[0] && triIndex != surface2[1]) { _activeCubeScript = null; Debug.Log("Hit Triangle index NOT REGISTERED: " + triIndex); return; } if (hitPoint.collider.gameObject.GetComponent <PanelPieceScript>() != null) { CubeObjectTypes panelType = hitPoint.collider.gameObject.GetComponent <ObjectScript>().objectType; if (panelType == CubeObjectTypes.Panel_Floor) { if (triIndex == surface1[0] || triIndex == surface1[1]) // (if floor) To sit BELOW of panels { _activeCubeScript = cubeScriptRight; } if (triIndex == surface2[0] || triIndex == surface2[1]) // (if floor) To sit OnTop of panels { _activeCubeScript = cubeScriptLeft; } } if (panelType == CubeObjectTypes.Panel_Wall) { if (triIndex == surface1[0] || triIndex == surface1[1]) // either 0 or 90 angle { _activeCubeScript = cubeScriptRight; } if (triIndex == surface2[0] || triIndex == surface2[1]) // either 0 or 90 angle { _activeCubeScript = cubeScriptLeft; } } if (panelType == CubeObjectTypes.Panel_Angle) { if (triIndex == surface1[0] || triIndex == surface1[1]) // (if floor) To sit OnTop of panels { _activeCubeScript = cubeScriptRight; } if (triIndex == surface2[0] || triIndex == surface2[1]) // (if floor) To sit OnTop of panels { _activeCubeScript = cubeScriptLeft; } } if (MovementManager.BuildMovementPath(_activeCubeScript)) { //Debug.Log("f**k _movementPossible "); //PanelPieceChangeColor("Pink"); _movementPossible = true; } else { //PanelPieceChangeColor("White"); _movementPossible = false; } } } } }