zoukankan      html  css  js  c++  java
  • Unity3d

    前期工程已实现了角色的选择, 现在开始进行制作角色在游戏场景的控制功能。

    控制功能一: 鼠标点击地面产生点击效果

    思路:读取鼠标点击位置,如果点击位置是地面,生成点击效果。

    则明显需要使用射线检测,用于检测射线与地面的碰撞信息,则脚本如下:

    public GameObject Click_Effect;  //定义游戏物体点击效果,将Prefabs赋值给变量

    void upDate()

    {

       if(Input.GetMouseDown(0))

        {

        Ray ray = camera.main.ScreenPiontToRay(Input.MousePosition);

        RaycastHit hitinfo;

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

        if( isCollider &&  hitinfo.collider.tag == "Ground")

        {

              GameObject.Instantiate(Click_Effect,hitinfo.point,Quaternion.identity); //注意此处的角度使用的是四元数 Quaternion.identity

        }

        }

    }

    这样就可以实现了点击地面出现点击效果的情况。

    控制功能二:角色朝向点击地点的方向

    思路:使用transform.LookAt()方法,找到目标地点的Vector3,在鼠标按下的情况下,进行朝向变化,脚本如下:

    private Vector3 targetPosition; //定义目标地点

    private bool isMoving = false; //定义移动状态标示位

    在updata中 if(Input.GetMouseDown(o)) 中加入移动标示位 isMoving = true;

    构建方法CharacterLook(),如下:

    void  CharacterLook( Vector3 hitPosition )

    {

         targetPosition = hitPosition;

         targetPosition = new Vector3( hitPosition.x,  tranform.position.y,hitpoint.z ); //注意:人物转向只发生在(x,z)平面,因此此处Y轴需定义为人物所在Y轴

         tranfrom.LookAt(targetPosition);

    }

    在Updata中加入条件检测

    if(Input.GetMouseUp(0))

    {
          isMoving = false;

    }

    if(isMoving)

    {

        Ray ray = camera.main.ScreenPiontToRay(Input.MousePosition);

        RaycastHit hitinfo;

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

        if( isCollider &&  hitinfo.collider.tag == "Ground")

        {

              CharacterLook(hitinfo.point);

        }

    }

    这样就可以实现了角色的目视朝向以及点击地面产生点击效果的功能了、

    今日的总结到此为止。

  • 相关阅读:
    蓝牙接收苹果手机通知 ANCS协议分析
    sqlite索引的原理
    iOS 项目的编译速度提高
    苹果核
    如何将 iOS 工程打包速度提升十倍以上
    微信跳一跳 (亲测可用)
    iOS 11 适配集锦
    iOS端Mock GPS定位 —— 测试、开发、玩游戏、发朋友圈等等,你都用得上(转)
    架构、框架、模式、模块、组件、插件、控件、中间件的含义和区别
    OC基础--对象做参数在方法间传递
  • 原文地址:https://www.cnblogs.com/yanbenxin/p/5782904.html
Copyright © 2011-2022 走看看