Unity代码日记2020.3.22

塔防游戏:

检测炮塔周围是否有敌人:

在控制面板内 拉一个炮塔,设置完之后设置成预制体

首先设置三个组件 碰撞器增加范围

Unity代码日记2020.3.22_第1张图片

public class Turret : MonoBehaviour

{

    // Start is called before the first frame update

    public List enemys=new List();

    void OnTriggerEnter(Collider col)

    {

        if (col.tag == "Enemy")//把敌人的tag设置成Enemy就可以检测到

        {

            enemys.Add(col.gameObject);

        }

    }

    void OnTriggerExit(Collider col)

    {

        if (col.tag == "Enemy")

        {

            if (col.tag == "Enemy")

            {

                enemys.Remove(col.gameObject);

            }

        }

    }

}

播放粒子特效:

public GameObject buildEffect;

    public void BuildTurret(GameObject turretPrefab)

    {

        turretGo = GameObject.Instantiate(turretPrefab, transform.position, Quaternion.identity);

        GameObject effect = GameObject.Instantiate(buildEffect, transform.position, Quaternion.identity);

        Destroy(effect, 1);

}

 

当鼠标未选中物体时,物体的颜色变化:

using UnityEngine.EventSystems;

private Renderer renderer;

  void OnMouseEnter()//unity自带的功能

 

    {

        if(turretGo==null&&EventSystem.current.IsPointerOverGameObject())

        {

            renderer.material.color = Color.red;

        }

 

    }

    void OnMouseExit()

    {

        renderer.material.color = Color.white;

    }

设置激光攻击束

  1. 设置碰撞器射击范围sphere collider     
  2. 添加游戏脚本 (添加bool值判断是那种攻击类型)
  3. 在炮台下面创建一个子物体(为了初始化位置和炮台一样)作为激光开始位置,开始位置的z轴要和激光发射方向一致(可能是Y轴旋转90°)把激光发射器物体turret拖到head下面
  4. 利用Linerenderer(是个画线的组件)发射激光 调整大小 加材质(去平滑和金属)

激光更亮点会好看:可以把材质里面的shader改成

Unity代码日记2020.3.22_第2张图片    

  

改完之后调节想要的颜色,之后改阿尔法值调节透明度

  1. 在炮台代码上定义LineRenderer

 

然后在面板上把lineRenderer拉过来

Unity代码日记2020.3.22_第3张图片

 

你可能感兴趣的:(代码日记,unity3d,c#)