25792人加入学习
(149人评价)
Unity2D 初级案例 - 坦克大战(Unity2017.1)

制作于2017年12月23日

价格 免费
  • 刚体最好挂在移动的物体上
  • 长时间不运动,刚体会休眠
  • 关闭刚体得重力(不需要下落)
  • 锁死刚体得Z轴旋转(不需要他旋转)
  • 将移动操作移动到FixedUpdate可以修复抖动情况
  • 刚体,力的交互最好都放在物理帧里面
  • time改为fixeddeltatime 物理帧
[展开全文]

pubkic GameObject 

Instantiate(explosionPrefab,transform.position,transform.rotation)

Instantiate(transform.position,Quaternion.identity

Destroy(gameObject,0.8f)

[展开全文]

isPlayerBullect

Destroy(collision.gameObject

SpriteRenderer sr

sr=GetComponent

Sprite BrokenSprite

sr.sprite=BrokenSprite

[展开全文]

transform.position,transform.rotaion

Destroy(gameObject, 0.2f);

explosionPrefab

private fooat defendTimeVal;

defendEffectPrefab

[展开全文]

Bullect

public float moveSpeed = 10;

transform.Translate(transform.right*moveSpeed*Time.deltaTime,Space.World);

transform.Translate(transform.right*moveeSpeed*Time,deltaTime,Space.World);

private float timeVal;

OnTriggerEnter 2D(Collider2D collision)

[展开全文]

private Vector3 bulllectEulerAngles;

Quaternion.Euler(transform.eulerAngles+bullectEulerAngles)

[展开全文]

public GameObject bullecPrefab;

GetKeyDown(KeyCode.Space))

Instantiate(bullectPrefab,transform.position,transform.rotation);

[展开全文]

Scripts

public float moveSpeed = 3;

float h = Input.GetAxisRaw("Horizontal");

Vertical

public float moveSpeed = 3;

transform.Translate(Vector3.right*h*moveSpeed*Time.deltaTime,Space.World);

transform.Translate(Vector3.right*h*moveSpeed*Time.deltaTime,Space.World)

[展开全文]

Prefabs

Wall

Barriar

Grass

Heart

Animation

Animator 

Born

BronController

Effect

Explosion

Shield

River

[展开全文]

学习发布的尺寸的大小与如何发bu

[展开全文]

碰撞器的条件:要有刚体,一方是运动的(有时会休眠)

抖要放入fixupdat里

[展开全文]

public class player : MonoBehaviour {
    public float movespeed=3;
    private SpriteRenderer sr;
    public Sprite[] tankSprite;
    private void Awake()
    {

        sr = GetComponent<SpriteRenderer>();
    }

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    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];
        }
    }
}
 

[展开全文]

public float movespeed=3;

    // Use this for initialization
    void Start () {
        
    }
    
    // Update is called once per frame
    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);
 

[展开全文]

按住shift拖拽可以多选,可以制作动画

[展开全文]

这届是导入没有什么的主要内容

[展开全文]