纳金网

标题: uniSWF使用教程1 [打印本页]

作者: graber    时间: 2012-11-16 14:01
标题: uniSWF使用教程1
uniSWF是什么,有什么用估计很多人都想问,其实就是flash影片与Unity3D的整合,它的出现对于钟爱flash有喜欢Unity的朋友可以说是喜出望外,不仅可以在Unity中使用flash创建的元件和效果,而且可以设置比较酷的交互动作,其基本原理是控制Flash里的元件。(这里打个小小的广告,看完后觉得不错需要购买可以联系我qq,247103210,官方售价几百美元吧,好像,记不得太清楚了,我这里绝对便宜还附带教程),好了废话不多说。

1,准备工作

    A:安装Adobe Air 运行时,http://get.adobe.com/cn/air/

    B:安装uniSWF Converter Application ,Unity->Window->uniSWF->Welcome,面板上点击 "Install Now".

    C:Unity->Window->uniSWF->uniSWF Options,面板上Browse 选择刚才安装的 uniSWF Converter      


2,准备Flash 工程(本人使用的是Flash CS6,目前最高版本,可以设置骨架动画,有兴趣的可以试试或者更新版本),可保存到Unity3d项目相应目录下

    A:随便画个东西,如方块

    B:选择刚才画的物体, 按  F8( 或 Modify->convert to symbol)转换为元件,选择Movie Clip(影片剪辑)

    C:注意,转换面板,上打开高级,勾选Export for ActionScript 和 Export in Frame 1

    D:C项可在库面板下检查,Ctrl+L可打开库面板,右键所做元件,点击properties,编辑或确认。



     
3,保存Flash工程,

    A:按Ctrl+Enter层出

    B:切换到Unity软件,此时弹出uniSWF 的SWF 导入面板,点击 “导入”

    C:场景里建立一个空物件,GameObject->Create Empty

    D:选中刚才建的空物件,Component->uniSWF->MovieClipBehaviour

    E:查看 检视面板,

      
    点击   
     ,此时弹出的面板里,就可以看到以Flash文件名为组的资源了,选中相应元件即可


(a):在创建元件或转换时,Flash 会提示选择注册位置,如上图是左上角。那么该元素在容器里的对齐位置将从左上角开始,元素旋转时将以左上角为中心。

一般元素布局时,会以左上角为注册点。围绕元素中心旋转时,可选择中心为注册点。





左图扇形元素  注册点在 底部居中

(b):注册点一旦创建完,并非不可修改。进入相应元素编辑舞台后,选择相应元素,进行拖动,即可改变元素注册位置。





     注册点在中心

下面以简单的例子说明uniSWF能做什么,如下图,可以看到flash中的文本框和雷达的影片元件





其中要需要注意的是,这里的文本框类型 动态文本框,而非静态文本框和输入文本框,



且嵌入了字体



Flash准备OK后,转到Unity3d

a,给摄像机,添加 MovieClipOverlayCameraBehaviour,摄像机类型,选择Orthographic

b,创建空物体,命名为UI,

c,给UI物体添加脚本,

复制代码

using UnityEngine;

using System.Collections;

using pumpkin.events;

using pumpkin.display;

using pumpkin.text;

using pumpkin.ui;



public class TestUniSWF01 : MonoBehaviour {

     private MovieClip playerArea;

      

//设置UI缩放值

     public float scaleRatio=0.5f;

     void Start(){

         Stage stage=MovieClipOverlayCameraBehaviour.instance.stage;

         MovieClip minimap=new MovieClip("uniSWF/learning/swf/hud.swf:Minimap");

         playerArea=minimap.getChildByName<MovieClip>("player");

         

//缩放UI

minimap.scaleX=minimap.scaleY=scaleRatio;

         

//MiniMap注册点在元素中心,故有*/2过程

         minimap.x=stage.stageWidth-minimap.width/2*scaleRatio-20f;

         minimap.y=minimap.height/2*scaleRatio+20f;

         

         stage.addChild(minimap);

     }

}





继续完善:



SimpleButton嵌入字体,注意嵌入相关字符,不要全部嵌入,浪费资源



相应的Unity3d里,hud2.swf的层出选项里,把Export fonts 勾上





ok,收工
作者: may    时间: 2012-11-17 16:25
感谢楼主的分享,uniswf的资料真是好少啊

作者: 王者再临    时间: 2012-11-18 01:05
详细的介绍,很不错,感谢楼主的教程分享!

作者: 艾西格亚    时间: 2012-11-18 18:36
顶下,支持楼主的精神

作者: 冰点    时间: 2012-11-23 16:05
wed 3d 纳金网
作者: may    时间: 2012-11-23 17:48
过来学习学习,感谢!
作者: osaka    时间: 2012-11-23 18:48
不错!!!!!!!!!!!!
作者: may    时间: 2012-11-24 03:02
  lZ的回复很不错,支持!

作者: 王伯杰    时间: 2013-2-27 07:59
uniswf将flash导入u3D的时候是转成位图,一般我们在开发的时候一般不敢缩放的引起的失真是很不好的!

作者: 雅雅    时间: 2013-2-27 11:11
原帖由  王伯杰  于 2013-02-27 07:59 发表:

                                                                                        uniswf将flash导入u3D的时候是转成位图,一般我们在开发的时候一般不敢缩放的引起的失真是很不好的!

                                                                               
-----------------------------------------------------
这个听起来貌似有些使用的问题。。

作者: 王伯杰    时间: 2013-2-28 01:27
是有些问题 滤镜需要特定的手续 共享字库后导致文本光标丢失等一些问题  mask我暂时无法使用

作者: 王者再临    时间: 2013-2-28 01:31
原帖由  王伯杰  于 2013-02-28 01:27 发表:

                                                                                        是有些问题 滤镜需要特定的手续 共享字库后导致文本光标丢失等一些问题  mask我暂时无法使用

                                                                               
-----------------------------------------------------
楼上的兄弟能否出个教程让我们学习一下啊。。

作者: 王伯杰    时间: 2013-3-1 19:04
我的语言能力不太好,不会写教程什么的  用过是用过包括现在一直在用
作者: 烟雨    时间: 2013-6-28 19:54
论坛貌似没有这个资源啊?
作者: a1991221    时间: 2013-8-19 13:51
Unity->Window->uniSWF->Welcome  请问这个路径 是unity3d 安装路径?  找不到这个Welcome啊
作者: lxl703827    时间: 2014-4-2 14:17
这个插件支持交互功能吗
作者: pz789as    时间: 2014-7-15 09:15
过来学习学习,感谢!




欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5