// 本脚本只在不存在时会生成一次。组件逻辑写在当前脚本内。已存在不会再次生成覆盖 using UnityEngine; using FairyGUI; using NBC; using NBF.Fishing2; namespace NBF { public partial class ModelViewer : GComponent { ModelViewRenderImage _renderImage; private Material _material; private MeshRenderer _meshRenderer; private void OnInited() { _renderImage = new ModelViewRenderImage(ModelHolder.asGraph); TouchHolder.onRollOver.Set(OnFocusIn); TouchHolder.onRollOut.Set(OnFocusOut); Stage.inst.onMouseWheel.Add(OnMouseWheel); _material = new Material(Shader.Find("Unlit/Transparent")); _material.name = "fk"; } public override void Dispose() { Stage.inst.onMouseWheel.Remove(OnMouseWheel); _renderImage.Dispose(); base.Dispose(); } public void SetData(uint itemId) { SetData(ItemConfig.Get(itemId)); } public void SetData(ItemConfig itemConfig) { //Assets/Resources/gfx/baits/worm_01/worm_01.prefab // _renderImage.LoadModel("gfx/baits/worm_01/worm_01"); _renderImage.LoadModel("gfx/" + itemConfig.Model); _meshRenderer = ModelHolder.displayObject.cachedTransform.GetComponent(); // ChangeMaterial(); } private int count = 0; protected override void OnUpdate() { base.OnUpdate(); // ChangeMaterial(); count++; } #region 用户输入操作(滑动,拖动等) private void SetRotateListening() { var dragObj = TouchHolder; var gesture1 = new SwipeGesture(dragObj); gesture1.onMove.Set(OnSwipeMove); gesture1.onEnd.Set(OnSwipeEnd); } private void OnSwipeMove(EventContext context) { } private void OnSwipeEnd(EventContext context) { } private void OnFocusIn() { // _focus = true; Log.Info("focus true"); } private void OnFocusOut() { // _focus = false; Log.Info("focus false"); } private void OnMouseWheel(EventContext context) { } #endregion #region NMSL private void ChangeMaterial() { if (_meshRenderer != null && _meshRenderer.material != _material) { var old = _meshRenderer.material; _material.mainTexture = old.mainTexture; _meshRenderer.material = _material; } } public void SetBackground(GObject image) { SetBackground(image, null); } public void SetBackground(GObject image1, GObject image2) { // _renderImage.SetBackground(image1, image2); } #endregion } }