Unity3d鼠标点击位置实例化点击动画特效-RPG游戏常用

///注明:需要特效动画

using
UnityEngine;

///
<summary>

///
鼠标点击位置实例化点击特效-RPG游戏常用,位于player

///
</summary>

public
class
PlayerDir
:
MonoBehaviour

{

   
///
<summary>

   
///
鼠标点击特效预制体

   
///
</summary>

   
public
GameObject
effectClickPrefab;

   
void
Update()

    {

       
//调用鼠标点击地面特效

        PlayerDirectional();

    }

   
///
<summary>

   
///
射线检测

   
///
</summary>

   
void
PlayerDirectional()

    {

       
//检测鼠标是否按下

       
if
(
Input
.GetMouseButtonDown(1))

        {

           
//判断当前是否点击到了地面

           
//定义主摄像机发射一条射线,进行检测

           
Ray
ray =
Camera
.main.ScreenPointToRay(
Input
.mousePosition);

           
//定义精测碰撞

           
RaycastHit
hitInfo;

           
//Bool判断当前是否检测碰撞到了游戏对象

           
bool
isCollider =
Physics
.Raycast(ray,
out
hitInfo);

           
//如果当前射线检测碰撞到了游戏对象并且是地面

           
if
(isCollider && hitInfo.collider.tag ==
"BoxColliderGround"
)

            {

               
//实例化出来点击的效果,调用ShowClickEffect方法

                ShowClickEffect(hitInfo.point);              

            }

        }

    }

   
///
<summary>

   
///
在鼠标点击的位置实例化鼠标特效

   
///
</summary>

   
///
<param name="
hitPoint
">
检测碰撞到的位置信息
</param>

   
void
ShowClickEffect(
Vector3
hitPoint)

    {

       
//实例化鼠标点击特效,位置是当前鼠标检测碰撞到的位置

       
GameObject
currentObj = Instantiate(effectClickPrefab, hitPoint,
Quaternion
.identity)
as
GameObject
;

       
//定时销毁当前实例化的鼠标点击特效

        Destroy(currentObj, 0.3f);

    }

}
上一篇:Unity3dResources加载预制体与Sprite精灵图片


下一篇:二十分钟教你如何将区块链应用与函数计算相结合