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

    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容