渭南微网站建设欧阳网站建设
2026/6/1 11:56:47 网站建设 项目流程
渭南微网站建设,欧阳网站建设,做天猫网站设计难吗,模具东莞网站建设视频教程#xff1a; https://www.bilibili.com/video/BV1mjXsYXERe?spm_id_from333.788.videopod.sectionsvd_source25b783f5f945c4507229e9dec657b5bb 1.基本设置 1.1 素材 创建项目 调整布局 基础设置 导入素材 设置人物图片 “过滤模式”三个选项的区别 属性Po…视频教程https://www.bilibili.com/video/BV1mjXsYXERe?spm_id_from333.788.videopod.sectionsvd_source25b783f5f945c4507229e9dec657b5bb1.基本设置1.1 素材创建项目调整布局基础设置导入素材设置人物图片“过滤模式”三个选项的区别属性Point (No Filter)BilinearTrilinear插值方式最近邻插值Nearest Neighbor双线性插值4 像素加权平均三线性插值Mipmap 层级间平滑过渡清晰度高像素化明显中等轻微模糊中等更柔和的模糊锯齿效果明显减少减少模糊程度无轻微更高性能开销最低中等较高适用场景像素风格游戏、保持原始像素感的纹理普通 3D 游戏中的纹理、UI 元素远距离观察的物体如地形、远景Mipmap 支持不支持平滑过渡支持单层 Mipmap 平滑支持多层 Mipmap 平滑过渡视觉效果特点锐利、块状效果平滑、自然过渡自然、适合远近视角切换1.2 场景、叠层1.2.1 场景设置森林背景图片显示“平铺调色盘”创建瓦片地图相关的文件夹、文件绘制地图1.2.2 叠层新增三个图层调色板可增加功能按钮新建瓦片地图依次设置排序图层依次设置图层顺序修改摄像机背景颜色1.3 规律瓦片新建文件夹、动画瓦片、规律瓦片设置规律瓦片规则设置动画瓦片规则最终效果2.玩家2.1 碰撞体、物理组件地面玩家2.2 输入系统设置新的输入系统安装“Input System”包创建输入系统脚本2.3 移动翻转usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.InputSystem;publicclassPlayerController:MonoBehaviour{[Header(基础参数)]publicVector2inputDirection;publicfloatspeed;publicfloatjumpForce;publicPlayerInputContollerinputController;privateRigidbody2Drb;privateboolisGrounded;privatevoidAwake(){inputControllernewPlayerInputContoller();rbGetComponentRigidbody2D();}// Start is called before the first frame updatevoidStart(){}// Update is called once per framevoidUpdate(){inputDirectioninputController.Player.Move.ReadValueVector2();}privatevoidFixedUpdate(){Move();}privatevoidOnEnable(){inputController.Enable();}privatevoidOnDisable(){inputController.Disable();}voidMove(){rb.velocitynewVector2(inputDirection.x*speed*Time.deltaTime,rb.velocity.y);floatfaceDirtransform.localScale.x;if(inputDirection.x0)faceDir-1;if(inputDirection.x0)faceDir1;transform.localScalenewVector3(faceDir,1,1);}}2.4 跳跃usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.InputSystem;publicclassPlayerController:MonoBehaviour{publicVector2inputDirection;publicfloatspeed;publicfloatjumpForce;publicLayerMaskgroundLayer;publicTransformgroundCheck;publicfloatgroundCheckRadius0.2f;publicPlayerInputContollerinputController;privateRigidbody2Drb;privateboolisGrounded;privatevoidAwake(){inputControllernewPlayerInputContoller();rbGetComponentRigidbody2D();inputController.Player.Jump.startedJump;}// Start is called before the first frame updatevoidStart(){}// Update is called once per framevoidUpdate(){inputDirectioninputController.Player.Move.ReadValueVector2();}privatevoidFixedUpdate(){Move();CheckGround();}privatevoidOnEnable(){inputController.Enable();}privatevoidOnDisable(){inputController.Disable();}voidMove(){rb.velocitynewVector2(inputDirection.x*speed*Time.deltaTime,rb.velocity.y);floatfaceDirtransform.localScale.x;if(inputDirection.x0)faceDir-1;if(inputDirection.x0)faceDir1;transform.localScalenewVector3(faceDir,1,1);}privatevoidJump(InputAction.CallbackContextcontext){if(isGrounded){Debug.Log(Jumping);rb.AddForce(Vector2.up*jumpForce,ForceMode2D.Impulse);isGroundedfalse;}else{Debug.Log(Not Jumping, not grounded);}}privatevoidCheckGround(){isGroundedPhysics2D.OverlapCircle(groundCheck.position,groundCheckRadius,groundLayer);}}2.5 闲置、移动动画添加动画控制器、动画片段设置动画器代码2.6 跳跃动画2.7 受伤PlayerBoarusingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;/// summary/// 角色基础属性管理类处理生命值和伤害计算/// /summarypublicclassCharacter:MonoBehaviour{// 当前生命值publicfloatcurrentBlood;// 最大生命值publicfloatmaxBlood;/// summary/// 处理角色受到伤害的方法/// /summary/// param namedamage受到的伤害值/parampublicvoidTakeDamage(floatdamage){// 减少当前生命值currentBlood-damage;// 确保生命值不会低于0if(currentBlood0)currentBlood0;}}usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.TextCore.Text;/// summary/// 处理攻击行为和伤害判定的组件/// /summarypublicclassAttack:MonoBehaviour{// 攻击伤害值publicfloatattackValue;// 是否处于无敌状态privateboolisInvincible;// 上次造成伤害的时间privatefloatlastTime;// 无敌状态持续时间单位秒privatefloatinvincibleDuration2f;privatevoidAwake(){// 初始化上次攻击时间lastTimeTime.time;}// Update在每一帧被调用voidUpdate(){// 检查是否需要解除无敌状态if(isInvincibleTime.time-lastTimeinvincibleDuration){isInvinciblefalse;}}/// summary/// 当其他碰撞体持续停留在触发器内时调用/// /summary/// param namecollision与之碰撞的碰撞体/paramprivatevoidOnTriggerStay2D(Collider2Dcollision){// 如果碰撞对象不是玩家直接返回if(!collision.CompareTag(Player))return;// 只有在非无敌状态下才造成伤害if(!isInvincible){// 获取被攻击对象的Character组件Charactercharactercollision.GetComponentCharacter();// 对目标造成伤害character.TakeDamage(attackValue);// 进入无敌状态isInvincibletrue;// 记录当前时间点lastTimeTime.time;}}}受伤动画2.8 死亡2.9 攻击动画判定3.敌人

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询