位置: 编程技术 - 正文

unity自学之项目剖析(4)(unity开发项目)

编辑:rootadmin

推荐整理分享unity自学之项目剖析(4)(unity开发项目),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity 入门项目,unity游戏项目开发教程,unity开发项目,unity项目怎么运行,unity项目怎么运行,unity开发项目,unity项目怎么运行,unity项目怎么运行,内容如对您有帮助,希望把文章链接给更多的朋友!

1.5、角色的跳跃

角色的跳跃,事实上是对velocity.y进行更改。

准备好跳跃的动作:

在改变velocity.y的同时再渲染这个动作就可以完成角色的普通跳跃了。但是注意能跳上去就应该能落下来,因此需要给角色添加一个重力因素,让velocity.y根据时间递减掉该因素,就相当于重力的影响而让角色下落了。

这里,要考虑到角色在什么条件下不再下降。因为你添加了重力之后,角色会不断下落,但最后游戏界面就没有角色了,所以一定要控制好。因此,有两种解决方案,一个是利用角色跳跃的时间,让在这段时间内下落,这样做首先你要知道跳跃时间。而另一种方法是给角色的下落添加条件:

controller.isgrounded表示对象是否与其他对象发生碰撞。可以用这个方法表示当角色与地面发生碰撞时就停止下落。

添加了跳跃之后,对原代码做了如下修改:

public class PlayerController : MonoBehaviour

{

public float gravity;//重力

public float moveSpeed;//移动速度

public float jumpSpeed;//跳跃速度

bool changeDirection = false;//改变移动方向

public Material runMaterial;

public Material idleMaterial;

public Material jumpMaterial;

public Vector3 velocity = Vector3.zero;

private bool jumpEnable = false;//是否处于跳跃状态

private CharacterController controller;

AniSprite aniplay;

// Use this for initialization

void Start ()

{

aniplay = GetComponent("AniSprite") as AniSprite;

controller = GetComponent<CharacterController>();

}

public bool IsFinished = false;//是否完成游戏

public bool IsAlive = true;//角色是否存活

void Update ()

{

if (IsAlive && controller.isGrounded && !IsFinished)//isGrounded对象与任何带碰撞的物体且法线方向在攀爬角度以内为true

{

velocity = new Vector3(Input.GetAxis("Horizontal"), 0, 0);

jumpEnable = false;//只有按下跳跃时才为true

if (velocity.x == 0)//站立姿势

{

transform.renderer.material = idleMaterial;//改变材质

aniplay.aniSprite(1, 1, true);

}

if (velocity.x < 0)//向左

{

transform.renderer.material = runMaterial;

aniplay.aniSprite(, , true);//第二个参数是图像的更换速度,第一个参数是图像拥有多少个精灵

velocity *= moveSpeed;

unity自学之项目剖析(4)(unity开发项目)

}

if (velocity.x > 0)

{

transform.renderer.material = runMaterial;

aniplay.aniSprite(, , false);

velocity *= moveSpeed;

}

if (Input.GetButtonDown("Jump"))

{

velocity.y = jumpSpeed;//角色y轴位移发生变法

jumpEnable = true;

}

}

if (IsAlive && !controller.isGrounded && !IsFinished)//角色还没有碰到地面,这一段是为了写在角色跳跃时的左右移动

{

velocity.x = Input.GetAxis("Horizontal");

if (changeDirection == false)//向右

{

if (jumpEnable)

{

velocity.x *= moveSpeed;

transform.renderer.material = jumpMaterial;

aniplay.aniSprite(, , true);

}

}

if (changeDirection == true)//向左

{

if (jumpEnable)

{

velocity.x *= moveSpeed;

transform.renderer.material = jumpMaterial;

aniplay.aniSprite(, , false);

}

}

}

if (velocity.x < 0)

changeDirection = false;

if (velocity.x > 0)

changeDirection = true;

velocity.y -= gravity*Time.deltaTime;//重力影响

controller.Move(velocity*Time.deltaTime);//角色控制器的移动函数,传入vector3和deltta时间

}

}

对于controller.isGrounded,必须是两个对象发生碰撞,而碰撞取决于两个对象的胶囊碰撞体,有时候这两个碰撞体初始形态并不如你所愿,因此需要进行修改:

对于Character Controller组件,需要修改的是:

Center修改胶囊的位置,Radius修改半径,Height修改高度

对于普通的Box Conllider,修改的是

size修改大小

如图,绿色部分即为碰撞体。

Unity UGUI——Rect Transform组件(Anchor Presets) AnchorPresets属性的使用示例

NGUI 代码布局工具 ngui好像是没有布局工具的,今天有点闲暇,就写了一个比较粗糙的布局工具,可以代码设定控件这个是程序运行前的样子然后。。。运行之后是。。。

FlappyBird开发总结(八)——MainScene场景 这个游戏呢,基本是完成了,不过有点单调,所以我加了个主场景,用来控制游戏的难度,说白了就是给不同的速度给小鸟啦,废话不多说,上代码:

标签: unity开发项目

本文链接地址:https://www.jiuchutong.com/biancheng/383651.html 转载请保留说明!

上一篇:手机游戏之打破射击端游僵局:[机动战士敢达OL]突围(打破游戏规则)

下一篇:Unity UGUI——Rect Transform组件(Anchor Presets)(unity-chan)

  • 企业所得税年报申报时间
  • 企业向红十字会捐赠可以抵扣所得税吗
  • 报税以及注销公司的注意事项?
  • 企业所得税汇算清缴退税怎么做账
  • 贴现手续费计入投资收益
  • 一般纳税人资格认定条件
  • 超过开票金额不能开票?
  • 出差怎么订机票
  • 银行承兑汇票到期日期怎么算
  • 民非组织捐赠收入免税
  • 抵扣红冲发票怎么报税
  • 开专票还要另外再交钱么
  • 小型企业缴纳企业所得税
  • 办公场所转租赁需要交哪些税费
  • 国有企业的所得税怎么算
  • 个人可以开技术服务费发票税率多少
  • 金三打印客户端插件如何下载?
  • 模拟评估了是什么意思
  • 如何计算一般稳定球面腔的主要参量
  • 汇算清缴时多缴的企业所得税怎么做会计分录
  • 固定资产折旧年限的最新规定2023
  • 收到退回的银行汇票会计分录
  • 企业所得税税率2022年最新税率表
  • 帮其他公司垫付的钱怎么写分录
  • 红字负数发票可以抵扣吗
  • 冲红发票开错了怎么办
  • 无法收回的款项摘要怎么写
  • win10系统怎么永久激活
  • 以前年度损益调整
  • 企业预缴电费会退回吗
  • 无形资产商标转让费计入什么科目
  • PHP:mb_substitute_character()的用法_mbstring函数
  • 小规模开普票后怎么报增值税
  • 税控设备抵减增值税会计处理
  • 企业所得税会计利润
  • 查看chrome浏览器内核版本
  • 帝国cms移动端
  • 发票怎么保管不会坏
  • PHP:imagefontwidth()的用法_GD库图像处理函数
  • ICCV, ECCV, CVPR,IEEE的关系
  • 可供出售交易资产
  • 携程境外电话客服人工电话
  • 购买农产品没有发票入帐怎么办
  • php控制结构
  • 销售部门招待费用预算
  • 本年利润的会计分录有哪些
  • ffmpeg png to mp4
  • 无形资产商标设计图片
  • SQLite3 API 编程手册
  • 前端架构优化
  • 织梦标签教程
  • 认证一般纳税人之后,之前开的发票作废重新填开的税率
  • mysql中的索引有
  • 企业所得税期初余额什么意思
  • 车船税款
  • 6月工资7月发8月申报
  • 电梯安装发票税收分类
  • 财务风险有什么类别
  • 当月购买固定资产需要计提吗
  • 零退税率可以做免税吗
  • 工资计提数小于发放数,如何处理
  • 个人社保代扣业务是什么意思
  • 什么是固定资产的后续支出
  • 根据企业会计准则第11号规定,下列关于等待期
  • win7如何升级win11系统
  • windows8怎么打开开始菜单
  • xp系统自动锁定
  • win7任务栏显示预览窗口
  • win8的控制面板在哪里打开
  • fortune命令
  • css中文字垂直排列
  • 基于JAVASCRIPT实现的可视化工具是
  • linux shell 数组长度
  • Re: Latest Version: 3.7.9 (January 18th, 2015)
  • android的图片文件保存在工程的哪个文件夹
  • js如何使用
  • 江苏省内车辆迁入标准
  • 广东省电子居住证怎么查看
  • 小微企业印花税的税率是多少
  • 苹果官网手机号码无效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设