ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c#代码总结-雷霆战机

2021-02-20 13:02:02  阅读:290  来源: 互联网

标签:雷霆 Destroy c# Vector3 transform new 战机 Input position


游戏物体的显示和隐藏  

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);
        }
    }

 

标签:雷霆,Destroy,c#,Vector3,transform,new,战机,Input,position
来源: https://www.cnblogs.com/sylvia1111/p/14420309.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有