方法①:使用組件:SpriteRenderer
使用GetAxis()
和GetAxisRaw()
沒(méi)有區(qū)別
public SpriteRenderer spriteRenderer;
public float moveFactor;
void Start(){
spriteRenderer=GetComponent<SpriteRenderer>();
}
void Move(){
moveFactor = Input.GetAxisRaw("Horizontal");
if(moveFactor > 0) spriteRenderer.flipX = false;
else if (moveFactor < 0) spriteRenderer.flipX = true;
}
方法②:使用組件:Transform
情況1:使用GetAxisRaw()
;沒(méi)有剎車效果,及翻轉(zhuǎn)過(guò)程沒(méi)有過(guò)渡,
m
o
v
e
F
a
c
t
o
r
moveFactor
moveFactor取-1,1,0
public float moveFactor;
void Move(){
moveFactor = Input.GetAxisRaw("Horizontal");
if(moveFactor!=0) transform.localScale=new Vector3(moveFactor,0.5,0.5);
}
情況1:使用GetAxis()
;有剎車效果,及翻轉(zhuǎn)過(guò)程有過(guò)渡,
m
o
v
e
F
a
c
t
o
r
moveFactor
moveFactor取-1~0
public float moveFactor;
public bool facingRight=true;
void Move(){
moveFactor = Input.GetAxisRaw("Horizontal");
//當(dāng)圖片的方向與移動(dòng)的方向不一致時(shí),需要翻轉(zhuǎn)
if(!facingRight&&moveFactor>0) Flip();
else if(facingRight&&moveFactor<0) Flip();
}
void Flip(){
Vector3 playerScale=transform.localScale;
playerScale.x*=-1;
transform.localScale=playerScale;
facingRight=!facingRight;
}
其余方法簡(jiǎn)寫匯總:
01文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-653952.html
//01
void Move(){
float MoveX = Input.GetAxis("Horizontal");
float FlipX = Input.GetAxisRaw("Horizontal");
rb.velocity = new Vector2(MoveX*playerSpeed,rb.velocity.y);
if(FlipX!=0){
transform.localScale = new Vector3(FlipX,1,1);
}
}
02文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-653952.html
transform.localScale = new Vector3(horizontal>0?1:-1,1);
到了這里,關(guān)于Unity2D-使人物翻轉(zhuǎn)的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!