c#代码总结-雷霆战机

游戏物体的显示和隐藏  

GameObject.SetActive(true);

实现键盘按键功能

if (Input.GetKey(KeyCode.Mouse0))  //当键盘的0键按下的时候
{ //逻辑判断}

 

设置游戏物体的位置

this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + speed, this.transform.position.z);

给参数pos_x一个-3到3的随机值

float pos_x = Random.Range(-3f,3f);

Vector3:得到一个位置坐标(x,y,z)

Vector3 pos = new Vector3(pos_x, this.transform.position.y, this.transform.position.z);//接上,对于随机生成的X坐标建立一个三维位置

对于Vector3中多个函数可以参看https://www.cnblogs.com/yangwx/p/9051639.html

instantiate()函数:实例化游戏对象

 

 

 对象实例化:https://blog.csdn.net/hyy_sui_yuan/article/details/80916119

Instantiate(Enemy1, pos, Enemy1.transform.rotation);

对象间隔时间出现

public GameObject Enemy0;
public float startTime_Enemy0 = 0.5f;
public float rateTime_Enemy1 = 0.2f;
InvokeRepeating("CreateEnemy0", startTime_Enemy0, rateTime_Enemy0);//startTime之后,每隔rateTime时间,调用一次Fire()方法,创建对象

鼠标带动游戏物体移动

原理:把鼠标移动位置,同步给我们游戏物体,并设置游戏的上下左右限制

        if (Input.GetMouseButtonDown(0))//设置开关,当按下左键可以拖动
        {
            isMouse = true;

        }
        if (Input.GetMouseButtonUp(0))
        {
            isMouse = false;
            PreviousPos = Vector3.zero;
        }

        if (isMouse)
        {
            CurrentPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);// Input.mousePosition屏幕坐标位置,转换成游戏世界当中的位置
             Vector3 offset = CurrentPos - PreviousPos;
            if (PreviousPos != Vector3.zero)
            {
                this.transform.position += new Vector3(offset.x, offset.y, 0);//鼠标移动位置同步给Hero
            }

            PreviousPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);//Input.mousePosition屏幕坐标位置,转换成游戏世界当中的位置
        }

        //左边范围限制
        if (this.transform.position.x<=-x_limit)
        {
            this.transform.position = new Vector3(-x_limit, this.transform.position.y, this.transform.position.z);
        }
        //右边范围限制
        if (this.transform.position.x >= x_limit)
        {
            this.transform.position = new Vector3(x_limit, this.transform.position.y, this.transform.position.z);
        }
        if (this.transform.position.y <= -y_limit)
        {
            this.transform.position = new Vector3(this.transform.position.x, -y_limit, this.transform.position.z);
        }
        if (this.transform.position.y >= y_limit)
        {
            this.transform.position = new Vector3(this.transform.position.x, y_limit, this.transform.position.z);
        }

    }

对象删除

GameObject gOj;
    void Start()
    {
        //删除对象类方法(有两种重载形式)
        ///Destroy(对象名);
        ///Destroy(对象名 , 延时值);
        Destroy(gameObject); //直接删除对象
        Destroy(gOj, 10f);  //延时10秒后删除
    }

刚体碰撞 先将属性设置为刚体

void OnTriggerEnter2D(Collider2D collider2d)
    {
        if(collider2d.gameObject.CompareTag("Enemy"))
        {
            //collider2d=Enemy GameObject
            //给敌机造成伤害
            //SendMessage
            collider2d.gameObject.SendMessage("BeHit");

            Destroy(this.gameObject);
        }
    }

 

posted @ 2021-02-20 12:57  sylvia11  阅读(495)  评论(0编辑  收藏  举报