unity 模型加点击事件

这篇具有很好参考价值的文章主要介绍了unity 模型加点击事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.相机增加如下组件

unity 点击事件,unity,unity,游戏引擎

2.场景内增加EventSystem

unity 点击事件,unity,unity,游戏引擎 

3.选择需要添加点击事件的模型,添加脚本以及Event Trigger;在Event Trigger 内点击加号,增加Pointer Click ,选择脚本内容写好的点击事件方法以及选择当前模型。

unity 点击事件,unity,unity,游戏引擎 

4.脚本如下

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 门操作
/// </summary>
public class DoorUtil : MonoBehaviour
{ // 模型
    public Transform door_model;
    public bool in_open =false;//是否向内开,默认外开
    // 旋转速度
    public static float rotateSpeed = 10f;  //一定要使用static,不然可能变量值读不到
    public static float rotateLerp = 18;    
    private Quaternion rotation;
    private bool is_open = false;
    private bool is_first = false;
    // Start is called before the first frame update
    void Start()
    {
        // 初始位置是模型
        rotation = door_model.rotation;
        //float rx = door_model.localEulerAngles.x;
        //float rz = door_model.localEulerAngles.z;
        //transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(new Vector3(rx, 0, rz + (in_open ? 90 : -90))), Time.deltaTime);
        //this.is_open = true;
        Debug.Log("Start" + door_model.localEulerAngles.z);
    }

    private void Update()
    {
        
     
    }


    public void OpenOrCloseDoor()
    {
        if (!this.is_open)
        {         
            float rx = transform.localEulerAngles.x;
            float rz = transform.localEulerAngles.z;
            float trz = rz + (this.in_open ? 90 : -90);
            Debug.Log("OpenDoor"+ rx+":"+rz+":"+ trz);
            transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.Euler(new Vector3(rx, 0, trz)), Time.time);
            this.is_open = true;
        }
        else
        {
            float rx = transform.localEulerAngles.x;
            float rz = transform.localEulerAngles.z;
            float trz = rz + (this.in_open ? -90 : 90);
            Debug.Log("CloseDoor" + rx + ":" + rz + ":" + trz);
            transform.rotation = rotation;
            this.is_open = false;              
        }
    }


}

 文章来源地址https://www.toymoban.com/news/detail-516758.html

到了这里,关于unity 模型加点击事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity 点击事件

    目录 点击按钮,显示图片功能教程 第1步添加ui button,添加ui RawImage 第2步 添加脚本: 第3步,把脚本拖拽到button,点击button,设置脚本的变量, GameObject添加 Component组件 第1步添加ui button,添加ui RawImage 第2步 添加脚本: 第3步,把脚本拖拽到button,点击button,设置脚本的变量

    2024年02月19日
    浏览(33)
  • Unity 2D点击事件、碰撞

    1.事件封装 定义脚本,实现事件相关接口即可 2.点击对象必须要添加BoxCollider2D脚本 3.摄像机上必须添加Physics2DRaycaster脚本 4.GameInputEvent2D 事件必须添加在挂载Physics2DRaycaster的对象及其父类身上。 5.如果要有碰撞或者触发器回调,碰撞其中之一要添加Rigidbody2D脚本,且不能设置

    2024年02月09日
    浏览(37)
  • Unity UI点击事件系统

    在Unity 的UGUI开发过程中,我们经常需要对UI图片进行操作响应各种处理比如:点击,长点击,长按,拖拽等多种功能的实现,这时原本的Button组件就不够用了 我们需要自己实现一个简单的点击事件系统来响应用户的各种操作,下面可以分析一下思路。 首先你需要提前了解点

    2024年01月17日
    浏览(41)
  • Unity UGUI实现点击事件穿透

     代码很简单如下 将此代码挂载到上层节点上即可 使用此方案遇到的一些问题以及处理方法 1.下层Button没响应问题 如果只传递一层的情况 Button的Text文本 或者Button下面有遮挡物 并且Raycast Target是true的情况它会传递给Text或者 其他遮挡物 而Button 不会收到点击消息 所以如果想

    2024年04月09日
    浏览(61)
  • [Unity]UI事件(鼠标进入、离开、点击)

    1、首先继承IPointerEnterHandler、IPointerExitHandler等接口 2、实现其方法 如:OnPointerEnter、OnPointerExit 注意:这些只对UI有效,而OnMouseEnter只对加Collider的非UI有效

    2024年03月17日
    浏览(62)
  • Unity(六)--绑定鼠标点击事件(左键、右键、中键)

    新建一个脚本buttonEvent:

    2024年02月01日
    浏览(52)
  • Unity UGUI之Button按钮点击事件

    组件基本知识:Unity UGUI之Button控件的简单认识-CSDN博客 按钮添加点击事件虽然比较简单,但是使用不同的方法灵活应用开发起来效率会更高。 1、当我们控制Unity一些组件的事件是组件本身自带的,那么我们就可以考虑直接通过Button的On Click()中“+”按钮,添加一个新事件,然

    2024年02月05日
    浏览(51)
  • Unity射线以及相关点击触发事件的归纳

    例如:最近在做一些Unity的小游戏需要,需要用到射线检测和点击事件等操作,虽然都是一些很基础的东西但是也折腾了一会,主要有些细节没处理好就会导致不触发,写篇博客学习记录一下吧。   这个是最常用的,常用于3D游戏中通过射线检测来获取鼠标点击的位置来控

    2024年02月01日
    浏览(42)
  • Unity UGUI事件输入,点击UI无反应

    之前被一个特别低级的UI点击问题卡了好久,记录一下,避免之后再犯同样的错误。 UI事件输入未接受到的原因无非就几个,一一排查总能找到原因。 1、若是直接使用的unity组件中的按钮,但是点击按钮没有反应。         1)查找是否被其他UI遮挡         2)查找是否接收

    2024年04月13日
    浏览(48)
  • 跟着cherno手搓游戏引擎【6】ImGui和ImGui事件

    下载链接: GitHub - TheCherno/imgui: Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies  新建文件夹,把下载好的文件放入对应路径:  SRC下的premake5.lua文件:添加ImGui 在Platform下创建OpenGl,将imgui_impl_opengl3.cpp和.h加入到该文件夹。 并且更名: 150行改为:

    2024年01月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包