2017-08-11 15:20:24 lr123838 阅读数 2213

为什么标题写着unity2d而不是unity3d呢?这是博主对于3d还没入门,只能入门2d游戏开发。。。简单点上手先。。。

一开始没注意,新建一个Image,放张背景上去,把Image宽高拉到画布大小,以为跑出来会是占满屏幕吧,结果是竖屏的,还不能旋转,宽好像占满了。。竖屏的问题找了下Build Settings-Player Settings-Inspector里面设置这里写图片描述
就这样,横屏效果出来了。关于Image没有充满屏幕的问题,在百度上找了下发现不知道网上说了什么,感觉很厉害,然而对面级别有点高,逃命吧。最后看了一下公司的一个项目,看到了Canvas和Image的宽高设置:
这里写图片描述
canvas设置1334*750,上面的是Image的设置。
感觉unity3d游戏开发学习之路任重而道远啊!

2019-07-08 14:22:20 weixin_41932353 阅读数 33

Unity3D中滑动文章效果实现

准备工作

新建场景Scene 、创建UI(image【text】、Scrollbar)

在这里插入图片描述

添加组件

1、Text中添加文字(大段文字)
2、Image中添加组件(Scroll Rect 、Mask)注意把Hierarchy中的Text和Scrollbar添加到Image Content和Vertical Scrollbar属性。
3、注意调整text的大小使文字全部显示出来

效果

在这里插入图片描述
勾选Mask后(大段文字)
在这里插入图片描述

2020-01-05 11:06:14 weixin_43333566 阅读数 12

世界模式(World Space)和3D的游戏对象的属性基本一致,可进行交互的UI。
Screen Space-overlay是你想把UI显示在任何游戏对象的前面。
Screen Space-Camera如果场景中只有一个摄像机这个模式和Screen Space-overlay没有啥区别,如果多个摄像机在一个场景中对游戏对象有叠加的效果,紧接着进行做一些适配,如果想进行兼容一些不同的屏幕大小,UI Scale Mode 一般进行选择Scale with Screen Size(屏幕的大小),分辨率一般就是填写设计时候的分辨率。
在这里插入图片描述

2017-02-21 14:46:13 an050602 阅读数 4562

最近项目所需,需要捕抓图像并上传到服务器。

参考了别人的文章,加以改动。

写此博客以记录。

参考博客


设置全局变量

public Camera cutFrameCamer;
Rect canvas;


开始截图

 
canvas.Set(0, 0, Screen.width, Screen.height);//设置画布大小等于当前屏幕的宽和高。
 CaptureScreen(cutFrameCamer, canvas); 执行截屏方法。

截屏并上传

 public void CaptureScreen(Camera c, Rect r)
    {
	//捕抓摄像机图像并转换成字符数组
        RenderTexture rt = new RenderTexture((int)r.width, (int)r.height, 0);
        c.targetTexture = rt;
        c.Render();

        RenderTexture.active = rt;
        Texture2D screenShot = new Texture2D((int)r.width, (int)r.height, TextureFormat.RGB24, false);
        screenShot.ReadPixels(r, 0, 0);
        screenShot.Apply();

        c.targetTexture = null;
        RenderTexture.active = null;
        GameObject.Destroy(rt);
        byte[] bytes = screenShot.EncodeToPNG();
        string url = "http://xxxxxxxxxxxxxxxxx";//要上传到的地址

        WWWForm form = new WWWForm();
        form.AddField("filename", fileName);
        form.AddBinaryData("photo", bytes);//把图片流上传
        WWW www = new WWW(url, form);
        StartCoroutine(PostData(www));//启动子线程
        Destroy(screenShot);//销毁
    }
  迭代器 等待服务器返回
   IEnumerator PostData(WWW www)
    {
        yield return www;
        Debug.Log(www.text);//输出服务器返回结果。
    }



2018-03-27 22:53:18 java3182 阅读数 1383

前言

在游戏开发时,大部分美术并不能以程序角度去考虑如何出图最优,最省,因此需要约定好一些规范,以便程序和美术更好的配合,下面分2D和3D分别来说一下。

2D美术

关于分辨率和尺寸

首先要约定的就是设计尺寸,约定好尺寸,才能设计,才能在程序中最大限度的还原美术设计,具体就是体现在新建时的画布大小,比如,笔者项目选的设计尺寸就是iphone6的尺寸,1334x750 ,订好尺寸后,有了设计框框,美术就可以在框框内自由发挥了。

出图尺寸

  • 如果是大的零散图,像道具,装备,建筑之类的不适合打到图集的图,尺寸一定要2的幂,这样方便压缩和保真。
  • 如果是UI装饰,控件。如按钮滑条,这些可以打到图集里,可以按边缘裁剪即可。

对称图形

如果是对称图形,可以出一半或四分之一,在程序里拼接,但要注意拼接时的缝隙问题,一般出一半就好,太极致的优化,也可能会有副作用,要讲求平衡之道。

大的纯色背景或部分可拉伸的图

这种一般是出一张很小的图,然后做九宫格拉伸处理

关于需要中心对称的图

这种一般就出成中心对齐,尺寸一样的图,虽然可能会多出一些空白,浪费些空间,但可以方便程序处理。

3D美术

尺寸统一

用3DMax举例,要保证“3DMax中创建一个1m的模型导入Unity3D也是1m”,只需要把3DMax中系统单位设置为cm。

关于Mesh

简单来说模型制作就是「结合!结合!结合!」,
Mesh 尽可能结合,Material 和Texture 尽可能共用,一个Mesh 建议使用的面数在1500~4000 之间,一个 Mesh 建议只用一个 Material。如果有几个mesh,命名一定要有意义的名字!
每个Mesh只使用一个Skinned Mesh Renderer

关于Material

  • 不要使用太多的Material。
  • 唯一需要使用不同的Material的原因,是想要使用不同的shader。
  • 一个角色使用2~3 Material 应该就能充份表现效果。
  • 如果角色可能会换武器,人物和武器的Material应该要分开

关于骨骼

  • 减少 bone 的数量
  • 角色bone的数量限制通常在15~60 之间,通常30 个bone 已经可以做到很好的效果。
  • 强烈建议一个角色的bone 数量在30 个以内。
  • 正确命名每一个bone之后,使用Ragdoll功能将会事半功倍。否则将骨架设定正确将花费你许多时间。

关于面数

  • 面数建议在 500~6000之间。
  • HL2 的面数是2500~5000、次世代游戏角色的面数在5000 ~ 7000。

起名字

所有模型、面片、材质的命名,严禁使用中文!

3D 动作规范

  • model.fbx 必须绑骨骼。
  • 所有动作在源文件里。
  • 过度动作可以不做

总结

以上就是一些美术规范的一些心得,不足之处欢迎指正,过同探讨。

没有更多推荐了,返回首页