//初期化 public void Init(AdvGraphicManager manager, AdvLayerSettingData settingData) { this.manager = manager; this.settingData = settingData; this.transform.localPosition = new Vector3(SettingData.Center.x / manager.PixelsToUnits, SettingData.Center.y / manager.PixelsToUnits, SettingData.GetZ(manager.SortOderToZUnits)); if (!string.IsNullOrEmpty(SettingData.LayerMask)) { gameObject.layer = LayerMask.NameToLayer(SettingData.LayerMask); } }
//初期化 public void Init(AdvGraphicManager manager, AdvLayerSettingData settingData) { this.Manager = manager; this.SettingData = settingData; //UI用のコード this.Canvas = this.GetComponent <Canvas>(); #if UNITY_5_6_OR_NEWER this.Canvas.additionalShaderChannels = AdditionalCanvasShaderChannels.TexCoord1 | AdditionalCanvasShaderChannels.Normal | AdditionalCanvasShaderChannels.Tangent; #endif if (!string.IsNullOrEmpty(SettingData.LayerMask)) { #if UNITY_EDITOR if (!LayerMaskEditor.ContainsInLayerNames(SettingData.LayerMask)) { Debug.LogWarning("Please add Layer name [ " + SettingData.LayerMask + " ]"); this.Canvas.gameObject.layer = 8; } else { this.Canvas.gameObject.layer = LayerMask.NameToLayer(SettingData.LayerMask); } #else this.Canvas.gameObject.layer = LayerMask.NameToLayer(SettingData.LayerMask); #endif } this.Canvas.sortingOrder = SettingData.Order; //入力受け付ける可能性があるので、イベントカメラとRaycasterを設定 this.Camera = Engine.CameraManager.FindCameraByLayer(this.Canvas.gameObject.layer); if (Camera == null) { Debug.LogError("Cant find camera"); this.Camera = Engine.CameraManager.FindCameraByLayer(0); } this.LetterBoxCamera = Camera.gameObject.GetComponent <LetterBoxCamera> (); this.Canvas.worldCamera = Camera; GraphicRaycaster raycaster = this.Canvas.gameObject.AddComponent <GraphicRaycaster>(); raycaster.enabled = false; this.rootObjects = this.Canvas.transform; ResetCanvasRectTransform(); //ToDo //キャンバスのアニメーションの最中でリセットされると破綻するが・・・ if (Manager.DebugAutoResetCanvasPosition) { this.LetterBoxCamera.OnGameScreenSizeChange.AddListener(x => ResetCanvasRectTransform()); } }
AdvLayer AddLayer(AdvLayerSettingData data) { AdvLayer layer = UtageToolKit.AddChildGameObjectComponent <AdvLayer>(this.transform, data.Name); layer.Init(data, PixelsToUnits); layers.Add(data.Name, layer); //キャラクターレイヤー登録 if (data.Type == AdvLayerSettingData.LayerType.Character) { characterLayers.Add(data.Name, layer); } //スプライトレイヤー登録 if (data.Type == AdvLayerSettingData.LayerType.Sprite) { spriteLayers.Add(data.Name, layer); } return(layer); }
/// <summary> /// 初期化 /// </summary> /// <param name="setting">レイヤー設定データ</param> public void InitLayerSetting(AdvLayerSetting setting) { foreach (AdvLayerSettingData item in setting.List) { AdvLayer layer = AddLayer(item); if (item == setting.DefaultBGLayer) { bgLayer = layer; } if (item == setting.DefaultCharacterLayer) { defaultCharacterLayer = layer; } if (item == setting.DefaultSpriteLayer) { defaultSpriteLayer = layer; } } if (bgLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("BG UtageDefault", AdvLayerSettingData.LayerType.Bg, 0); bgLayer = AddLayer(data); } if (defaultCharacterLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("Character UtageDefault", AdvLayerSettingData.LayerType.Character, 100); defaultCharacterLayer = AddLayer(data); } if (defaultSpriteLayer == null) { AdvLayerSettingData data = new AdvLayerSettingData(); data.InitDefault("Sprite UtageDefault", AdvLayerSettingData.LayerType.Sprite, 200); defaultSpriteLayer = AddLayer(data); } }
/// <summary> /// 初期化 /// </summary> /// <param name="layerData">レイヤーデータ</param> /// <param name="pixelsToUnits">スプライトを作成する際の、座標1.0単位辺りのピクセル数</param> public void Init(AdvLayerSettingData layerData, float pixelsToUnits) { this.layerData = layerData; this.pixelsToUnits = pixelsToUnits; ResetLayer(); }