首页 > 编程知识 正文

unity2d上下左右移动,unity的canvas大小

时间:2023-05-04 04:00:51 阅读:157203 作者:2788

首先,将C#脚本添加到角色对象,然后单击“添加组件”

选择新脚本

编写程序在Update中获取角色的移动指示

//采取水平防线动作,向右移动(按或d ) 1向左)或按a )返回-1floath=input.getaxisraw )//采取垂直移动,向上获取命令后移动角色对象

//Vector3.right表示x轴的右方向//h模糊地向右移动时为负,左//moveSpeed表示以速度自己定义//Time.deltaTime表示以时间移动//Space.World表示坐标轴是以世界坐标轴为基准的publicfloatmovespped//transform.translate (vector3. right * h * movespeed * time.dese 将Space.World )左右移动//transform.translate (vector3. up * v * movespeed * time.delta time,Space.World ); 角色现在可以根据上面的代码移动,但角色是平移的,角色的贴图不会重定向,因此您可以修改角色的,以便移动时图像会发生变化

您可以在unity中看到的角色的图像特性是Sprite Renderer下的Sprite,因此必须获取Sprite Renderer组件,然后更改Sprite特性

//要获取的spriterendererprivatespriterenderersr; player的组件sr=GetComponentSpriteRenderer (;),其中包含四个方向的图像,并且数组的内容可以在单元中拖动到public Sprite[] tankSprite中。 tankSprite存储了四个方向的图像。 数组的内容可以拖到unity中。 请先保存代码。 否则,数组将不会显示在unity的script组件中

if(h0 ) ) )将play的子画面交换图像转换为(/左Sr .子画面=tanksprite(3); }elseif(h0 ) (/右sr.sprite=tankSprite[1]; (if (v0) ) /下sr.sprite=tankSprite[2]; }elseif(v0) ) /上sr.sprite=tankSprite[0]; }完整代码using System.Collections; using system.collections.generic; using UnityEngine; public class player : mono behaviour {//速度public float moveSpeed=3; //要获取的spriterendererprivatespriterenderersr; void Start ()//获取player的属性sr=GetComponentSpriteRenderer,其中包含四个方向的图像,并且数组的内容可以在单元中拖动到public Sprite[] tankSprite //updateiscalledonceperframevoidupdate () )//获得水平防线的移动floath=input.getaxisraw (' horizontal ' ); if(h0 ) ) )将play的子画面交换图像转换为(/左Sr .子画面=tanksprite(3); }elseif(h0 ) (/右sr.sprite=tankSprite[1]; (/x轴)移动方向)移动速度)根据时间移动,世界坐标transform.translate ) vector3. right * h * movespeed * time.delta time,Space.World; //获取垂直移动floatv=input.getaxisraw (vertical ); transform.translate (vector3. up * v * movespeed * time.delta time,Space.World ); if(v0) (/下sr.sprite=tankSprite[2]; }elseif(v0) ) /上sr.sprite=tankSprite[0]; } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。