public void UpdateMinimap(Transform rotationReference, MinimapModes minimapMode, Transform playerTransform, HNSMapProfile profile, float scale) { // assign map rotation Quaternion identityRotation = Minimap.Panel.transform.rotation; Quaternion mapRotation = identityRotation; if (minimapMode == MinimapModes.RotateMinimap) { mapRotation = Quaternion.Euler(Minimap.Panel.transform.eulerAngles.x, Minimap.Panel.transform.eulerAngles.y, rotationReference.eulerAngles.y); } //修改 小地图旋转逻辑 // set player indicator rotation if (Minimap.PlayerIndicator != null) { //修改~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Transform snakeHead = GameObject.FindGameObjectWithTag("PlayerHead").transform; Minimap.PlayerIndicator.transform.localRotation = snakeHead.localRotation; //End修改~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //if (minimapMode == MinimapModes.RotateMinimap) // Minimap.PlayerIndicator.transform.rotation = identityRotation; //else // Minimap.PlayerIndicator.transform.rotation = Quaternion.Euler (Minimap.Panel.transform.eulerAngles.x, Minimap.Panel.transform.eulerAngles.y, -rotationReference.eulerAngles.y); } // calculate map position 计算地图位置 Vector2 unitScale = profile.GetMapUnitScale(); Vector3 posOffset = profile.MapBounds.center - playerTransform.position; //Vector3 mapPos = new Vector3(posOffset.x * unitScale.x, posOffset.z * unitScale.y, 0f) * scale; /// //修改小地图移动逻辑 //S修改~~~~~~~~~~~ posOffset-玩家的pos unitScale偏移量系数 Vector3 mapPos = new Vector3(posOffset.x * unitScale.x, posOffset.y * unitScale.x, 0f) * scale; //Debug.Log("小地图移动逻辑:" + mapPos); //End 修改 // adjust map position when using minimap rotation mode 使用小地图旋转模式时调整地图位置 if (minimapMode == MinimapModes.RotateMinimap) { mapPos = playerTransform.MinimapRotationOffset(mapPos); } // set map position, rotation and scale Minimap.MapContainer.localPosition = new Vector2(mapPos.x, mapPos.y); Minimap.MapContainer.rotation = mapRotation; Minimap.MapContainer.localScale = new Vector3(scale, scale, 1f); }
public void UpdateMinimap(Transform rotationReference, MinimapModes minimapMode, Transform playerTransform, HNSMapProfile profile, float scale) { Quaternion identityRotation = Minimap.Panel.transform.rotation; Quaternion mapRotation = identityRotation; if (minimapMode == MinimapModes.RotateMinimap) { mapRotation = Quaternion.Euler(Minimap.Panel.transform.eulerAngles.x, Minimap.Panel.transform.eulerAngles.y, rotationReference.eulerAngles.y); } if (Minimap.PlayerIndicator != null) { if (minimapMode == MinimapModes.RotateMinimap) { Minimap.PlayerIndicator.transform.rotation = identityRotation; } else { Minimap.PlayerIndicator.transform.rotation = Quaternion.Euler(Minimap.Panel.transform.eulerAngles.x, Minimap.Panel.transform.eulerAngles.y, -rotationReference.eulerAngles.y); } } Vector2 unitScale = profile.GetMapUnitScale(); Vector3 posOffset = profile.MapBounds.center - playerTransform.position; Vector3 mapPos = new Vector3(posOffset.x * unitScale.x, posOffset.z * unitScale.y, 0f) * scale; if (minimapMode == MinimapModes.RotateMinimap) { mapPos = playerTransform.MinimapRotationOffset(mapPos); } Minimap.MapContainer.localPosition = new Vector2(mapPos.x, mapPos.y); Minimap.MapContainer.rotation = mapRotation; Minimap.MapContainer.localScale = new Vector3(scale, scale, 1f); }
/// <summary> /// Applies a new scene configuration. /// </summary> /// <param name="config">Scene Configuration.</param> public void ApplySceneConfiguration(HNSSceneConfiguration config) { if (config == null) { return; } // override radar settings if (config.overrideRadarSettings) { // radar usage changed? if (_HUDNavigationCanvas != null && this.useRadar != config.useRadar) { _HUDNavigationCanvas.ShowRadar(config.useRadar); } this.useRadar = config.useRadar; this.radarMode = config.radarMode; this.radarZoom = config.radarZoom; this.radarRadius = config.radarRadius; this.radarMaxRadius = config.radarMaxRadius; this.useRadarHeightSystem = config.useRadarHeightSystem; this.radarDistanceAbove = config.radarDistanceAbove; this.radarDistanceBelow = config.radarDistanceBelow; } // override compass bar settings if (config.overrideCompassBarSettings) { // compass bar usage changed? if (_HUDNavigationCanvas != null && this.useCompassBar != config.useCompassBar) { _HUDNavigationCanvas.ShowCompassBar(config.useCompassBar); } this.useCompassBar = config.useCompassBar; this.compassBarRadius = config.compassBarRadius; } // override indicator settings if (config.overrideIndicatorSettings) { // indicator usage changed? if (_HUDNavigationCanvas != null && this.useIndicators != config.useIndicators) { _HUDNavigationCanvas.ShowIndicators(config.useIndicators); } this.useIndicators = config.useIndicators; this.indicatorRadius = config.indicatorRadius; this.indicatorHideDistance = config.indicatorHideDistance; this.useOffscreenIndicators = config.useOffscreenIndicators; this.indicatorOffscreenBorder = config.indicatorOffscreenBorder; this.useIndicatorScaling = config.useIndicatorScaling; this.indicatorScaleRadius = config.indicatorScaleRadius; this.indicatorMinScale = config.indicatorMinScale; this.useIndicatorFading = config.useIndicatorFading; this.indicatorFadeRadius = config.indicatorFadeRadius; this.indicatorMinFade = config.indicatorMinFade; } // override minimap settings if (config.overrideMinimapSettings) { // assign new minimap profile if (this.currentMinimapProfile != config.minimapProfile) { this.currentMinimapProfile = config.minimapProfile; if (_HUDNavigationCanvas != null) { _HUDNavigationCanvas.SetMinimapProfile(this.currentMinimapProfile); } } // minimap usage changed? if (_HUDNavigationCanvas != null && this.useMinimap != config.useMinimap) { _HUDNavigationCanvas.ShowMinimap(config.useMinimap); } this.useMinimap = config.useMinimap; this.minimapMode = config.minimapMode; this.minimapScale = config.minimapScale; this.minimapRadius = config.minimapRadius; this.showMinimapBounds = config.showMinimapBounds; this.useMinimapHeightSystem = config.useMinimapHeightSystem; this.minimapDistanceAbove = config.minimapDistanceAbove; this.minimapDistanceBelow = config.minimapDistanceBelow; } }