unity3d学习(一)

以下均为开发2d游戏相关。

1、如果用unity开发2d游戏,需要将主摄像头设置为orthgrahphic正交模式,同时可以设置orthgrahphicSize为视图高度的一半,这样1像素单位等同于unity里的1单位。

 Camera.main.orthographicSize = Screen.height / 2;


2、unity采用左手坐标系,如果开发2d游戏,主摄像头都是从z小的方向向z大的方向,所以看到的x y如图方向



3、如上,如果熟悉开发flash的人,就知道这个坐标系与flash的坐标系Y向是反的。

4、自己写一个矩形(两个三角形)贴图(此图尺寸768*325),以此展示unity的mesh相关。

一个gameobject需要增加meshFilter和meshRender两个component。

meshFilter中设置mesh属性,而mesh需要设置顶点坐标,uv,三角形顶点序号(顺时针)

所谓uv,是指一坨三角形顶点,对应到一张平面图中,每个顶点在这张平面图中的位置(0到1之间,代表百分比)

material需要设置shader和texture材质。

public override void Start()
        {
            base.Start();
            //
            Vector3[] vertices = { new Vector3(768,325,0), new Vector3(768,0,0), new Vector3(0,0,0), new Vector3(0,325,0) };
            Vector2[] uvs = { new Vector2(1, 1), new Vector2(1, 0), new Vector2(0, 0), new Vector2(0, 1) };
            int[] triangles = {0,1,2,2,3,0};
            //
            MeshFilter meshfilter = gameObject.AddComponent<MeshFilter>();
            Mesh mesh = new Mesh();
            mesh.vertices = vertices;
            mesh.uv = uvs;
            mesh.triangles = triangles;
            //
            meshfilter.mesh = mesh;
            //
            Shader shader = Shader.Find("Sprite/Vertex Colored, Fast");
            Material mat = new Material(shader);
            mat.mainTexture = Resources.Load("map") as Texture;
            //
            MeshRenderer render = gameObject.AddComponent(typeof(MeshRenderer)) as MeshRenderer;
            render.material = mat;
        }


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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭