位置: 编程技术 - 正文

unity之项目剖析(3)(unity example project)

编辑:rootadmin

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

文章相关热门搜索词:unity 项目管理,unity项目模板,unity开发项目,unity项目模板,unity 项目管理,unity项目总结,unity项目总结,unity项目教程,内容如对您有帮助,希望把文章链接给更多的朋友!

1.4、为角色的移动添加动作

根据1.2节,渲染材质的获取可以从一张大图片中获取一部分,准备好两张图片,一张站立的图片,一张跑动的图片,如下:

站立图片

跑动图片

创建两个材质(Material),分别添加这两张图片,使用Transparent/diffuse 的shader。

接着创建一个获取材质的类:AniSprite

public class AniSprite : MonoBehaviour {

private Vector2 size;//表示tiling

private Vector2 offset;

public void aniSprite (int columSize, int framePerSecond, bool moveDirection) {

//参数columnSize表示这张图片有多上个子动作,比如run就有个。

//参数framPerSecond用于控制角色动作变更的速度,通常有多少个子动作就设置为多少

//因此run这个材质应该设置为.

//参数moveDirection表示角色移动的方向

int index = (int)(Time.time * framePerSecond);

//只要玩家按住左右键,这个index的&#;就会不断地上升

index %= columSize;

//事实上,index的&#;只需要取0~columnSize-1就足够了

if (moveDirection) {

//moveDirection用于表示角色的移动方向

size = new Vector2 (1.0f / columSize, 1);

//这个算法根据1.2节可以很容易理解,把Tiling当做vector2

//其中x = 1.0f/columSize, y=1,这样就可以逐步获取run的动作了。(y=1表//示获取整张图片的y轴,下面的offset将表示对x轴的切割)

offset = new Vector2 (index * size.x, 0);

//重新解释一下Tiling和offset的作用,Tiling表示显示的范围,而offset表示//将该范围移动多少距离。(类&#;放大镜的作用)

}

else {

size = new Vector2 (-1.0f / columSize, 1);

offset = new Vector2 (-index * size.x, 0);

//如果方向相反,需要加入-号

}

renderer.material.mainTextureScale = size;

//该方法用于控制渲染,通常的渲染只会渲染整个材质球,如果要精确的渲染就需要//这两个方法

renderer.material.mainTextureOffset = offset;

}

unity之项目剖析(3)(unity example project)

}

写好这个类,在playController类中调用该类的方法就可以控制角色的移动动作了。修改之后的playController类如下:

public class PlayerController : MonoBehaviour {

public float moveSpeed; //角色移动速度

public Vector3 velocity = Vector3.zero;//角色第移动向量

AniSprite aniPlay;

private CharacterController controller;

public Material runMaterial;

public Material idleMaterial;

//添加两个材质球,用于更改角色的动作

void Start () {

aniPlay = GetComponent ("AniSprite") as AniSprite;

//获取脚本组件可以用这个方法!

controller = GetComponent<CharacterController> ();

}

void Update () {

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

if (velocity.x == 0) {

//移动向量的x为0表示角色没有移动,渲染静止动作(idleMaterial)

transform.renderer.material = idleMaterial;

aniPlay.aniSprite(1, 1, true);

}

if (velocity.x > 0) {

//角色向左移动,渲染移动动作

transform.renderer.material = runMaterial;

aniPlay.aniSprite (, , false);

//根据run这张图片,包含了个子动作,因此两个参数都为,第三个参数

//作用是决定材质渲染的方向,false为左,true为右

velocity *= moveSpeed;

}

if (velocity.x < 0) {

transform.renderer.material = runMaterial;

aniPlay.aniSprite (, , true);

velocity *= moveSpeed;

}

controller.Move (velocity * Time.deltaTime);

}

}

这样角色跑起来就有动作了而不是像之前那种漂移了,下一次将写角色的跳跃。

【Unity3d】火炬之光的X射线效果 欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多Unity3D资源、Unity3D培训视频、Unity3D教程、Unity3D常见问题、Unity3D项目源码,【狗刨学习

创建敌人和玩家之间的AI 创建敌人和玩家之间的AIusingUnityEngine;usingSystem.Collections;publicclassEnemyAI:MonoBehaviour{//敌人冲向的目标publicTransformtarget;//敌人移动速度publicintmoveSpeed=5;//敌人

Unity3D实现闪光灯效果 Unity3D闪光灯效果的实现代码:usingUnityEngine;usingSystem.Collections;//定义一个Light类publicclassLight:MonoBehaviour{//定义一个时间长度publicfloatduration=1.0F;//定义一个

标签: unity example project

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

上一篇:unity游戏之咪咕游戏新版SDK:可提升20%付费转化率(咪咕游戏包括什么)

下一篇:【Unity3d】火炬之光的X射线效果(unity火球特效)

  • 小规模结转增值税会计科目有哪些
  • 所得税 扣除
  • 如何开具免税发票
  • 个人所得税申报是公司申报还是个人申报
  • 仲裁给员工的款如何进行账务处理
  • 公司车辆卖给个人怎么处理账务
  • 财务软件计提所得税分录
  • 固定资产加速折旧税收优惠政策
  • 出售股票会计怎么做分录
  • 个税手续费退还时间
  • 代开专票退票流程及说明
  • 运输发票的税率分类
  • 网上申购发票怎么撤销
  • 分公司可以列为被告吗
  • 外商投资企业外债额度
  • 成本法核算长期股权投资初始投资成本
  • 哪些票据可以冲抵增值税
  • 纳税额和纳税总额
  • 拍卖抵债资产的缴税责任
  • spss安装后无法启动许可证授权向导
  • 停薪留职单位欠缴社保怎么处理
  • 天猫公司不开银行卡吗
  • 收据入账会计分录
  • 应税货物销售额怎么填
  • hiddenalbum是什么文件夹
  • 公益性捐赠申报填列
  • Laravel 5.4因特殊字段太长导致migrations报错的解决
  • 哪些货物可以享受减免税政策
  • 回迁房办理房产证契税怎么交
  • 代销商品受托方怎么做账
  • php缓存机制有哪些
  • 存货非正常损失进项税额转出
  • 海关发票丢失怎么处理
  • 现在用yii框架的人还多么
  • 目标检测yolo
  • 待摊费用和预提费用属于什么账户
  • 销售发票重复开库存商品如何处理?
  • 法院判决后的利息
  • 大型广告牌制作材料
  • 医院出的收据就是发票吗
  • 企业所得税太高怎么合理规避
  • 公司银行销户钱转到哪里去
  • 事业单位相关规定有哪些
  • 珠宝可以开票抵扣吗
  • 个人所得税红利所得税率
  • 劳务费个人所得税怎么查
  • 购货方收到销售折扣发票怎么入账
  • 固定资产达到预定状态的判定
  • 管理费用的是
  • 小规模开具的1%专票 一般纳税人抵扣
  • 闲置固定资产如何折旧
  • 记账凭证的分类标准
  • 企业构建固定资产无形资产和其他长期资产支付
  • 资金占用利息收入怎么入账
  • 社会医疗保险机构名词解释汇总
  • sql语句实现分页
  • 一个关于数据库表中的各条记录
  • centos server
  • ie11安装方法
  • windows10设置无法使用
  • u盘安装ubuntu找不到硬盘
  • win7某个软件打不开
  • 文件在移动或复制过程中权限的变化
  • centos删除vg
  • 获取windows的最新信息
  • win7系统怎么截图然后保存
  • rmxp4droid for 天敏电视盒子
  • python中读取excel
  • cocos2dx-3.x(二)、坐标系
  • 方块大人
  • javascript怎么弄
  • nodejs 异步io
  • 安装了python2.7和3.6怎么切换版本
  • jQuery插件是什么
  • 浅谈插入排序算法在Python程序中的实现及简单改进
  • 工程项目管理费计入什么科目
  • 北京税务局网站
  • 小规模纳税人进口环节的增值税税率
  • 不交社保申报个税有风险吗
  • 增值税按次纳税的规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设