2019年7月15日 学习日志

U3d的初步使用

**

上午

**
也是对C#的一个复习,在script中又将以前的知识重现了一遍。比较基础的就是U3d的快捷键,和拖动方式,其拖动快捷键就像英雄联盟一样,都是qwer。且在创建自己的类后,要符合继承关系,这就很好的契合了U3d中有了属于自己的对象(类)后,也可能拥有隶属于自己的类,即继承。从一个类到其他类的派生能让一个项目更丰富,有利于类的建立和扩充,角色属性和类型的多元化。主要在于方法的继承,而不是数据的继承。(继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。)在学过程中也有比较让人陌生的变量
就像var:

C# 中的var关键字

  var 是3.5新出的一个定义变量的类型 其实也就是弱化类型的定义 VAR可代替任何类型 编译器会根据上下文来判断你到底是想用什么类型的    至于什么情况下用到VAR 我想就是你无法确定自己将用的是什么类型 就可以使用VAR

类似 OBJECT 但是效率比OBJECT高点。 或者通俗的讲:
var可以理解为匿名类型,我们可以认为它是一个声明变量的占位符。它主要用于在声明变量时,无法确定数据类型时使用。
使用var定义变量时有以下四个特点:

  1. 必须在定义时初始化。也就是必须是var s = “abcd”形式,而不能是如下形式: var s; s = “abcd”;
  2. 一但初始化完成,就不能再给变量赋与初始化值类型不同的值了。(类似const)
  3. var要求是局部变量
  4. 使用var定义变量和object不同,它在效率上和使用强类型方式定义变量完全一样。

还有在实践中与var搭配的"Input"函数—>“Input.GetAxis(“Horizontal”)”.其中input函数是接收输入量的函数,其中包括鼠标的点击和键盘的敲打(特定键位),这里的GetAxis是对对象的方向进行一个定义,而“Horizontal”代表的就是水平,垂直是“Vertical”。还有同命名空间内对于类的调用,而刚才的"Input.GetAxis()"方法就是用于接收值输入同命名空间不同类的函数后得到相应的反馈。“Input.GetKeyDown(KeyCode.Space)” 这段代码也是运用了Input中的函数,并且目标是得到是否按下空格这个事件。“Input.GetKeyDown(KeyCode.G)”也一样,不过是得到了G键是否被按下。当然在if函数内判断后,如果为真也要进行相应的事件,如按下空格之后跳起来,按到G键后要抓住物体。到这里有不一样的感觉嗷,因为不只是程序的逻辑了,还有对于类生命体的生存事件的遍历。如果一个游戏合格那对于一个角色的事件构造一定是全面或者抽象的(愤怒的小鸟,贼抽象),是个艺术,哈哈。

**

下午

**
上午就是简单的构建函数,并没有涉及到游戏的运行,趁着还有一些时间我要对我下午的学习做一下总结。本次做的游戏较为简单,对于创建的三个脚本,一个是专门给玩家用的“Character”,一个是玩家和敌人都用的“PlayerCharacter”,也有要在晚上学习的"PlayerCtroller"。以前学习过C#中的继承可以继承方法进而扩展,但Componment函数在一个脚本中寻找另一个脚本 构建另一种关系,就像角色即需要角色的控制也需要角色动画的支持。在角色运动的时候也许要时刻更新属性,就像横板游戏,z轴是没有用的,因此要设置z轴速度为0.动画的更新也和速度和是否在地板上有关系。重力用速度来表现,因此在地板上是没有重力操纵的纵向速度,要是不在地板就要受重力影响。

//移动
pendingVelocity.z = 0f;
cc.Move(pendingVelocity * Time.deltaTime);
//更新动画
animator.SetFloat(“Speed”, cc.velocity.magnitude);
animator.SetBool(“Grounded”, cc.isGrounded);
//更新重力
pendingVelocity.y += cc.isGrounded ? 0f : Physics.gravity.y * 10f * Time.deltaTime;

这里直接对于cc的调用是因为之前利用“GetConponent”来得到的 PlayerCtroller 脚本中的方法。这和继承又不一样。

public void Jump()
{
if (cc.isGrounded)
{
pendingVelocity.y = jumpPower;
}
}

这个是给了物体一个起跳速度,而速度的更新就需要上面的更新重力,是环环相扣的。
还有比较重要的就是在2D游戏中不要把游戏角色的坐标设计的过于离谱儿,不然会飞流直下三千尺。
在插入动画的时候涉及到在不在地上的逻辑问题,这个也是用来对Blend Tree设计的重要因素。不在地板,因此处于跳跃状态,箭头从blend tree指向jump,反之箭头从jump指回来。不要忘了jump的param属性要和blendtree中对应。
**

晚上

**
恶心len!!!

!!!我U3d基础本来就不好,现在我编的大儿子落地癫痫病,小儿子小儿麻痹。等着!!!我先 去学学简单的,过几天我再战这个gdx.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值