这老师代码写的真不讲究
这老师代码写的真不讲究
子弹攻击在
通过建立访问数组来解决图片方向的问题
1.
碰撞事件,需要有碰撞器,至少有一方是有刚体的,最好是运动的一方
防止抖动方法,FixedUpdate
图集与单图区别
Texture Type都一样是Sprite UI 2D
Sprite Mode不一样,图集是多个图片的集合,用的是Multiple,单图用Single
图集剪切成多张小图才可以用
点击Sprite Editor剪辑图集,调整好长度和高度按格子剪辑。
两个碰撞体
box 2d
private void fixedupdate(){}
public float movespeed=3;
float h=Input.getaxisraw( "horzontal");
transfom.translate(vector3.right*h*movespeed*time.deltatime,space.world);
float v=Input.getaxisraw( "vertical");
transform.translate(vector3.up*v*movespeed*time.deltatime,space.world);
第一次学习时间2018-01-22
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|
2D和3D的旋转角度是相反的。不相同的
碰撞检测的两个必要条件
1、组件身上要有碰撞器
2、其中一方要有刚体(最好是运动的一方)。
原因:刚体长时间不运动会休眠就不会发生碰撞检测。
每一帧受力是相同的,不能发生变化。所以放到物理帧中:FixedUpdate();
代码控制图片移动切换:
private SpriteRenderer sr;
public Sprite[] tankSprite;
private void Awake(){
sr=GetComponent<spriteRenderer>();
}
if(h<0)
{
sr.sprite=tankSprite[3];
}
else if(h>0)
{
sp.sprite=tankSprite[1]
}
移动代码:
void Update(){
float h=Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right*h*moveSpeed*Time.deltaTime,Space.World);
float v=Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up*v*movespeed*Time.deltaTime,Space.World);
}
quaternion.euler(tranform.eulerangles+bullerangles)
euler欧拉角转四元数
sorting layer层级问题
碰撞器的生成
二者都要有碰撞器
其中一方(运动的一方)要有缸体
fixedupdate 物理针
是每一秒受力固定
缸体碰撞受力使物体发生抖动,添加物理针处理
未加物理针
void Update ()
{
float h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right * h * movespeed * Time.deltaTime, Space.World);
if (h < 0)
{
sr.sprite = tanksprite[3];
}
else if (h > 0)
{
sr.sprite = tanksprite[1];
}
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up * v * movespeed * Time.deltaTime, Space.World);
if (v < 0)
{
sr.sprite = tanksprite[2];
}
else if (v > 0)
{
sr.sprite = tanksprite[0];
}
}
添加物理针
private void FixedUpdate()
{
float h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right * h * movespeed * Time.fixedDeltaTime, Space.World);
if (h < 0)
{
sr.sprite = tanksprite[3];
}
else if (h > 0)
{
sr.sprite = tanksprite[1];
}
float v = Input.GetAxisRaw("Vertical");
transform.Translate(Vector3.up * v * movespeed * Time.fixedDeltaTime, Space.World);
if (v < 0)
{
sr.sprite = tanksprite[2];
}
else if (v > 0)
{
sr.sprite = tanksprite[0];
}
}
order in player 覆盖图片
sprite editor 图片切割
PlayerMove Script:
publix float moveSpeed=3;//定义速度
void Start(){
}
void Update(){
float h = Input.GetAxisRam("Horizontal");
transform.Translate(Vector3.right*h*moveSpeed*Time.deltaTime,Space.World);
float v = Input.GetAxisRam("Vertical");
transform.Translate(Vector3.up*v*moveSpeed*Time.deltaTime,Space.World);
}