16635人加入学习
(115人评价)
Unity中级案例 - 捕鱼达人(Unity5.6.4)

制作于2017.12.14

价格 免费

老师我发射的子弹感觉好软,一发射就掉下来了,而且我子弹打中鱼身上没用,我之前问过我老师他说什么没有弄成静态,不过我忘记了。。。

 

[展开全文]
PlayerPrefs.DeleteKey("smallTimer");
PlayerPrefs.DeleteAll();

删除部分键值以及删除全部jian'zhi

[展开全文]
gameObject.transform.position = Vector3.MoveTowards(transform.position, goldHolder.transform.position, 50 * Time.deltaTime);

MoveTowards:从当前位置直线移动到目标位置

[展开全文]
bullet.transform.rotation = guns[gunIndex / 4].transform.Find("FirePos").transform.rotation;

1.rotation之间的赋值是指世界坐标的坐标轴重合

bullet.GetComponent<Move>().dir = Vector3.up;

2.控制子弹前进的方向是y轴方向

[展开全文]
RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas, new Vector2(Input.mousePosition.x, Input.mousePosition.y), mainCamera, out mousePos);

1.将一个屏幕坐标转化为UGUI上的世界坐标

Vector3.Angle(Vector3.up, mousePos - transform.position);

2.返回两个向量的夹角,永远是较小的那个角,且注意这个3D用的,2D用时要注意Z轴的影响

[展开全文]

学到了,index = (index+1)%textures.Length这句很简洁,之前我都是if和else判断

[展开全文]

循环取数,1到7,每次循环+1,超过7时重新变为1

int n;

InvokeReprating("OneToSeven",0,0.1f);

   void OneToSeven()

{

   n=(n+1)%7;

[展开全文]

导入素材

project项目栏中单击右键选择import package,在选择custom package在弹出的界面中选择需要的package,在这里选择Assets package

 

[展开全文]

  直接在边界上将Rigidbody 2D Body Type改为 Dynamic   Gravity Scale 设置为0  是可行的

鱼身上不需要添加Rigidbody 2D

 

 

被坑了 原来老师后面要将。。。。。。

[展开全文]

预制体实例化 也是 GameObject  Prefabs

 

[展开全文]

Rigidbody 2D

动态模式下和碰撞器(Collider)和刚体碰撞

静态模式下只和动态模式碰撞

动力学Kin。。。

[展开全文]

Vector.Angle返回一个小于180的角度

计算夹角方法

 

RectTransformUtility.ScreenPointToWorldPointInRectangle(UICanvas, new Vector2(Input.mousePosition.x, Input.mousePosition.y), maincamera, out mousePos);屏幕坐标转化为世界坐标

 

[展开全文]

private static GameController _instance;
    public static GameController Instance
    {
        get
        {
            return _instance;
        }
    }

单例模式 让其他脚本获取这个脚本 使用它的成员

其中_instance是在Awake赋值

_instance=this

[展开全文]

1.Camera.ScreenToWorldPoint:转变position从屏幕空间到世界空间。屏幕空间以像素为单位定义。屏幕的左下角是(0,0);右上角是(pixelWidth,pixelHight)。z位置是相机的世界单位。

2.Event.mousePosition:鼠标位置。用于EventType.MouseMove和EventType.MouseDrag事件。窗口的左上角返回(0,0)。右下角返回(Screen.width,Screen.height)。

以上两种方法不太适合用于UGUI。

可以用UGUI中已经封装好的的方法:ScreenPointToWorldPoint。

3.public static bool ScreenPointToWorldPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam,out Vector3 worldPoint);

参数
{矩形 : RectTransform在里面找到一个点。
凸轮:  相机与屏幕空间位置相关联。
screenPoint :   屏幕空间位置。
worldPoint :   指向世界空间。}

将屏幕空间点转换为位于给定RectTransform平面上的世界空间中的位置。

cam参数应该是与屏幕点相关联的摄像机。对于Canvas中设置为Screen Space - Overlay模式的RectTransform,cam参数应为null。

当从提供PointerEventData对象的事件处理程序中使用ScreenPointToWorldPointInRectangle时,可以使用PointerEventData.enterEventData(用于悬停功能)或PointerEventData.pressEventCamera(用于单击功能)来获取正确的摄像机。这将自动为给定事件使用正确的相机(或null)。

4.Vector2 .Angle

float Angle(Vector2 from, Vector2 to)

 

 

 

[展开全文]

1.2D模式和3D模式的区别,2D模式默认的摄像机的模式是Orthographic(正交摄像机),3D模式默认的摄像机的模式是Perspective(透视摄像机)。3D会额外给你一个平衡光。3D模式修改为2D模式,点击Edit下面的Editor 修改为2D。

2.Overiay模式:叠加层,

3.Camer模式:指定摄像机,跟3d有点关系,灵活性更高

 

[展开全文]

授课教师

SiKi学院讲师

课程特色

图文(1)
视频(41)
下载资料(1)