unity3d中鼠标组件_unity3d中获取一个组件下包含子组件的个数 - CSDN
  • 1、脚本,也就是控制游戏物体运动的代码。Scripts,5.0之后仅支持C#和JavaScript,当然C#是主流 2、组件,各个组件组成...3、鼠标键盘的输入类似://键盘输入(参数A~Z,F1~F12) Input.GetKey(KeyCode.A); //持续返

    1、脚本,也就是控制游戏物体运动的代码。Scripts,5.0之后仅支持C#和JavaScript,当然C#是主流
    2、组件,各个组件组成物体,不同的物体由不同的组件构成。但是所有的游戏物体都有Transform组件。也是不可隐藏的。
    3、鼠标键盘的输入类似:

    //键盘输入(参数A~Z,F1~F12)
        Input.GetKey(KeyCode.A);               //持续返回true
        Input.GetKeyDown(KeyCode.A);           //按下A键返回true
        Input.GetKeyUp(KeyCode.A);             //抬起A键返回true
    
    //鼠标输入(0:鼠标左键,1:鼠标右键,2:鼠标中键,只有这是三个参数)
        Input.GetMouseButton(0);              //持续返回true
        Input.GetMouseButtonDown(0);          //按下鼠标左键返回true
        Input.GetMouseButtonUo(0);           //抬起鼠标左键返回true
    展开全文
  • Unity中有几种删除组件的方式: //销毁游戏对象。 Destroy (gameObject); 复制代码 //从游戏对象删除该脚本实例。 Destroy (this); 复制代码 //

    转载自:http://bbs.9ria.com/thread-202660-1-1.html

    Unity中有几种删除组件的方式:


    //销毁游戏对象。


    1. Destroy (gameObject);
    复制代码

    //从游戏对象删除该脚本实例。


    1. Destroy (this);
    复制代码

    //从游戏对象删除刚体。


    1. Destroy (rigidbody);
    复制代码

    //5秒后消耗游戏对象。


    1. Destroy (gameObject, 5);
    复制代码

    //当用户按下Ctrl或鼠标左键时,从游戏对象删除名为“myScript ”的组件。


    1. function Update () {if (Input.GetButton ("Fire1") && GetComponent (myScript ))Destroy (GetComponent (myScript ));}
    复制代码

    展开全文
  • unity3d 图形渲染组件

    2018-04-04 00:46:21
    本篇是本人学习courera课程unity3d编程基础 课程笔记,想学习可以直接报名哦。文章版权归本人所有,转载请谨慎。 这次,我们要完成这2个效果: 我们创建一个小球 smallball, 一个大球bigball,一个方块,两个球都...

    本篇是本人学习courera课程unity3d编程基础 课程笔记,想学习可以直接报名哦。文章版权归本人所有,转载请谨慎。

    这次,我们要完成这2个效果:

    1. 我们创建一个小球 smallball, 一个大球bigball,一个方块,两个球都在方块上方。我们想让 bigball 掉下来砸向 smallball。最终,bigball掉落在
      方块上面,smallball 被挤下去。
    2. 给2个小球都设置木质材质,方块设置铁块材质。

    首先,实现第1个效果:

    打开 hierarchy 层级视图,我们创建一个小球 smallball, 一个大球bigball,一个方块,摆好位置,这里,我们想让 bigball 掉下来砸向 smallball。最终,bigball掉落在方块上面,smallball 被挤下去。

    我们勾选大球 bigball RegistBody的 constraints 属性中 freeze position 与 freeze rotation 的 x z 选项 – 大球只能在 y 轴上运动与旋转。
    这样做为了限制“大球“左右前后移动,只沿着垂直轴y移动。

    点击预览按钮,就可以看到效果,大球掉落,把小球挤下去了!

    图1
    图1 大球挤掉小球

    接着,我们给3个对象添加材质, project 视图 -> assets -> 鼠标右键,依次选择 create physic matelrial,创建一个物理材质,我们将其重命名为 wood 表示物理材质。

    接下来在 project 视图中选中 wood 物理材质就可以在 inspector 检视视图中设置其属性。

    我们将 wood 物理材质设置成大球 bigball 的物理材质: 拖拽到 collider 组件的 material 的属性中。

    另外一个球和方块同样的方式设置:

    图2

    图2 修改对象物理材质

    到此,完成开头的要求。

    这篇,我们了解了:

    • “物理材质“的渲染组件;
    • “刚体RegistBody“的作用:模拟物理世界有质量的实物,产生力;还可以限制移动方向。
    展开全文
  • 大家都知道,当鼠标移动到button按钮上面的时候会出现变化,主要是button这个组件在控制 既然可以控制颜色,就一定有状态捕捉的枚举 然后就找到了这个 接下来就是重写Button类了 二、实现效果 三、实现步骤 1...

    一、前言

    有时候图标不能很好的说明这个功能的解释,就需要一些说明性文字显示。就比如可以在鼠标移动到UI上面的时候显示文字。
    那么如何在UGUI上,鼠标移动上去显示文字说明呢。
    大家都知道,当鼠标移动到button按钮上面的时候会出现变化,主要是button这个组件在控制
    在这里插入图片描述
    既然可以控制颜色,就一定有状态捕捉的枚举
    然后就找到了这个
    在这里插入图片描述
    接下来就是重写Button类了

    二、实现效果

    在这里插入图片描述

    三、实现步骤

    1.新建一个button,然后remove掉原来的button组件
    在这里插入图片描述
    2.新建TestButton.cs脚本,编写脚本

    using UnityEngine;
    using UnityEngine.UI;
    
    public class TestButton : Button
    {
        enum Selection
        {
            Normal,
            Highlighted,
            Pressed,
            Disabled
        }
        Selection selection;
    
        protected override void DoStateTransition(SelectionState state, bool instant)
        {
            base.DoStateTransition(state, instant);
            switch (state)
            {
            	//四种状态
                case SelectionState.Normal:
                    selection = Selection.Normal;
                    break;
                case SelectionState.Highlighted:
                    selection = Selection.Highlighted;
                    break;
                case SelectionState.Pressed:
                    selection = Selection.Pressed;
                    break;
                case SelectionState.Disabled:
                    selection = Selection.Disabled;
                    break;
                default:
                    break;
            }
        }
    
        private void OnGUI()
        {
            GUI.skin.box.fontSize = 10;
            switch (selection)
            {
                case Selection.Highlighted:
                    GUI.Box(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 25), "Highlighted");
                    break;
                case Selection.Pressed:
                    GUI.Box(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 25), "Pressed");
                    break;
                default:
                    break;
            }
        }
    }
    

    3.挂载到button按钮上
    在这里插入图片描述

    OK了 。

    四、使用EventTriggerListener组件

    可以直接使用EventTriggerListener 组件 不过会覆盖其它事件
    也可以单独使用接口,不会对其它事件造成影响
    IPointerEnterHandler 当鼠标进入对象时
    IPointerExitHandler 当鼠标退出对象时
    IPointerDownHandler 当鼠标点下对象时
    IPointerUpHandler 当鼠标抬起时
    IPointerClickHandler 当鼠标点击时
    IBeginDragHandler 鼠标开始拖动时
    IDragHandler 鼠标拖动时
    IEndDragHandler 拖动结束时
    IScrollHandler 鼠标滚轮时

    这些等以后再详细介绍

    展开全文
  • 物理引擎对于当前大多数游戏都是必不可少的一部分。在虚拟现实逐渐兴起的今天,玩家对游戏的真实感,以及操作...总而言之,Unity3D中任何物体想要受到重力、外力的影响都必须包含一个刚体组件。2、怎样给物体添加刚体?
     物理引擎对于当前大多数游戏都是必不可少的一部分。在虚拟现实逐渐兴起的今天,玩家对游戏的真实感,以及操作感要求越来越高。Unity3D内置PhysX物理仿真引擎,具有高效低耗,仿真度膏的特点。
    

    1、什么是刚体?
    刚体使物体能在物理控制下运动。刚体可通过接受力使物体允许效果更加真实。总而言之,Unity3D中任何物体想要受到重力、外力的影响都必须包含一个刚体组件。

    2、怎样给物体添加刚体?
    选中物体,然后在点击菜单 Components>Physics>Rigidbody,来给物体增加一个刚体。

    3、刚体组件中有什么属性?(介绍常用属性)
    1)质量(Mass) 发生碰撞时,质量大的物体能够推开质量小的物体。
    2)阻力(Drag)默认为0,没什么好解释的吧……
    3)旋转阻力(Augular Drag)默认值为0.05
    4)使用重力(Use Gravity)用来设定是否在刚体上施加重力用来模拟现实世界中的自由落体状态等。勾选即选中。
    5)是否遵循运动学(Is Kinematic)用来设置刚体是否遵循牛顿物理学定律 勾选表示不会调用物理计算,只受脚本和动画的影响而运动!!!

    4、常用方法
    1)AddForce函数:对刚体施加一个指定方向的力,使其发生移动。
    函数表示如下:
    function AddForce(force: Vector3,mode: ForceMode=ForceMode.Force) : void
    函数ForceMode有四种模式:Force、Impulse、Acceleration、VelocityChange
    Force表示施加一个恒力, Impulse表示施加一个瞬间冲击力
    Acceleration表示对物体施加加速度 VelocityChange 表示改变物体速度
    2)MovePosition函数:将刚体移动到position位置。
    函数表示如下:
    function MovePosition(position : Vector3) : void
    3)MoveRoration函数:将刚体旋转相对应的角度。

    5、简单案例
    1)案例说明:使用上面介绍的三种函数,对场景中的正方体施加恒力、爆炸力、移动和旋转。重置按钮使正方体复位。
    案例运行效果如下图1.1所示:
    这里写图片描述
    图1.1

    2)制作流程:
    1.使用在场景中创建4个Cube搭建成围墙,修改尺寸调整位置,创建一个Cube作为本案例的主角,创建一个Plane对象充当地板,为Cube和Plane分别添加纹理图片。
    2.使用UGUI在场景里创建5个button按钮,如上图1.1所示。界面布局就完成了,接下来就需要编写脚本对主角Cube进行操作。
    3、在Assets内点击鼠标右键,Create>C#Script,重命名为Script2,双击打开脚本编写代码。

    using UnityEngine;
    using System.Collections;
    public class Script2 : MonoBehaviour {
        protected Transform m_transform;
        public float force;    //施加在物体上的力
        public float speed;    //物体移动速度
        private bool ForceMode_Impulse;    //布尔类型变量,用来判断当前是否对物体施加爆炸力
        private bool ForceMode_Force;      //布尔类型变量,用来判断当前是否对物体施加恒力
        private bool CubeMovePosition;     //判断物体是否移动
        private bool CubeMoveRotation;     //判断物体是否旋转
        private Vector3 eulerAngle = new Vector3(0, 100, 0);    //三维向量,用来设置物体绕那个轴旋转
        private Vector3 cubePosition;      //存储物体的位置
        private Quaternion cubeRotation;   // 存储物体旋转状态
        void Awake()
        {
            cubePosition = this.transform.position;   //记录物体初始位置
            cubeRotation = this.transform.rotation;   //记录物体初始状态
        }
    
           // Use this for initialization
           void Start () {
            m_transform = this.transform;
    
           }
    
           // Update is called once per frame
           void Update () {
            if (ForceMode_Impulse)//爆炸力 使物体向右移动
            {
                this.GetComponent<Rigidbody>().AddForce(Vector3.right * force, ForceMode.Impulse);
            }
            if (ForceMode_Force)//恒力 使物体向右移动
            {
                this.GetComponent<Rigidbody>().AddForce(Vector3.right * force, ForceMode.Force);
            }
            if (CubeMovePosition)//移动方块
            {
                this.GetComponent<Rigidbody>().MovePosition(m_transform.position + Vector3.right * Time.deltaTime);
            }
            if (CubeMoveRotation)//旋转方块
            {
                Quaternion deltaRotation = Quaternion.Euler(eulerAngle * Time.deltaTime);
                this.GetComponent<Rigidbody>().MoveRotation(m_transform.rotation * deltaRotation);
          }
    
           }
        public void OnClick1()//施加爆炸力
        {
            ForceMode_Impulse = !ForceMode_Impulse;
        }
        public void OnClick2()//施加横力
        {
            ForceMode_Force = !ForceMode_Force;
        }
        public void OnClick3()//移动方块
        {
            CubeMovePosition = !CubeMovePosition;
        }
        public void OnClick4()//旋转方块
        {
            CubeMoveRotation = !CubeMoveRotation;
        }
        public void OnClick5()//重置方块
        {    
            this.GetComponent<Rigidbody>().isKinematic = true;//先不遵循物理学定律,消除物体的移动、旋转
            this.GetComponent<Rigidbody>().isKinematic = false;//然后遵循物理学定律
            m_transform.position = cubePosition;   //将物体的位置修改为初始状态
            m_transform.rotation = cubeRotation;   // 将物体的旋转状态修改为初始状态
        }
    }

    OnClick1()————OnClick4()功能类似,是当点击button按钮后,更改物体的状态

    4、保存脚本,在Unity中把Script2脚本拖拽到游戏体Cube上。在Inspector面板上就会看到该脚本的设置面板。如下图1.2所示。
    Force和Speed可以任意修改。
    这里写图片描述
    图1.2

    展开全文
  • unity 3d鼠标拖拽脚本

    2017-01-04 16:58:37
    unity 3d 鼠标拖拽C#脚本
  • Unity3D教程:物体跟随鼠标点击处移动 Unity3D音乐开关与音量条 Unity3D教程:GUILayout.Window和GUI.Window的区别 在游戏改变地形高度 教你如何创建unity3d多个定时器,以及定时器的其他操作 Unity3D使用LitJson...
  • Unity3D鼠标移动视角+键盘移动位置实现 鼠标移动视角实现: 一、Ui操作 在物体下创建一个子摄像机,把它作为物体的眼睛,并调到一定高度 二、代码实现 将本脚本放到子物体Camera上。 using System.Collections; ...
  • 需求:制作一个鼠标中键移动缩放和鼠标右键旋转的功能(鼠标右键旋转可以自行改成鼠标左键旋转) 效果图: 1.新建一个名为Target的立方体cube 2.新建一个材质球 Yellow颜色的并挂载到Target立方体上 3...
  • using UnityEngine; using System.Collections; public class Target : MonoBehaviour { public Transform targetMatker; void Start() { } void Update() { int button = 0; i
  • 我用unity3d开发一个pc端游戏,是想全程使用键盘操控,完全用不到鼠标。比如上下按键切换菜单项的选中状态。我在使用ugui的button时,想要屏蔽掉按钮对鼠标的事件响应,同时保留对键盘事件的响应(使用其Navigation)...
  •  一般在做鼠标选择时是从摄像机向目标点发送一条射线,然后取得射线与对象相交的点来计算3D目标点。后来在开发发现了一个问题(射线被别的对象挡住了),就是如果主角的前面有别的游戏对象挡着。此时如果使用射线...
  • 血条是在游戏非常常见的东西,和Cocos2dx《【Cocos2dx】利用音量螺旋控件控制血量条 》(点击打开链接)一样,Unity3D的血条也其实就是用一个slider就能做完的事情。同时,本文也将继《【Unity3D】用鼠标点击...
  • 鼠标移动到按钮上,按钮做出响应动画。比如手游三国杀的开始游戏,当...在组件AnimatorNavigation选择Automatic后自动产生动画控制器,之后便可以在Unity3d的动画控制器处选择Highlighted。 点击录制按钮
  • 初学unity3D,对于其中的事件响应不是
  • 本博客只为个人记录笔记。 使用NavMeshAgent 组件,根据鼠标左键点击位置进行自动寻路。 知道了需要到达的坐标点(target)...从摄像机出发,发出一条过鼠标点的射线。 Camera.main.ScreenPointToRay(Input.mousePos...
  • using System.Collections; using System.Collections.Generic; using UnityEngine; public class mouselook : MonoBehaviour { //MouseLook.cs //无重力:放在人上MouseXAndY //加重力: 人水平MouseX 摄像机...
  • public class UiButton : MonoBehaviour { private Button button; public Button main; public Transform Canves; EventTrigger trigger; void Start() ... button = Instantiate(main, Canves.position,Quaterni...
  • 今天呢,我们来一起实现一个在RPG游戏十分常见的功能,通过鼠标点击屏幕来控制人物的走动。首先来说一下原理,当我们点击屏幕时,我们按照一定的方法,将屏幕上的二维坐标转化为三维坐标,然后我们从摄像机位置...
  • void FixedUpdate() { if (Input.GetMouseButton(0)) { Vector3 aimPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.mai
1 2 3 4 5 ... 20
收藏数 4,407
精华内容 1,762
关键字:

unity3d中鼠标组件