精华内容
参与话题
问答
  • SLA/IU Collider workarounds

    2020-12-02 09:02:01
    m 99.9% sure that the collider problem is on the IU texture itself. I tried creating a single part that was made up of the two "FairingWall3m" of the standards SLA and the "Apollo_IU"....
  • Technie Collider Creator 1.9

    2019-03-19 15:18:52
    The Technie Collider Creator lets you quickly create accurate colliders for the most awkwardly shaped objects. Simple, Intuitive Workflow Just select your object and start painting what you want ...
  • Easy collider editor 2.5

    2019-03-19 13:08:26
    Easy collider editor is designed to facilitate the creation of 3D primitive colliders. By using primitive colliders instead of mesh colliders, rigidbodies can be added to gameobjects to allow for ...
  • 在未来的线性对撞机中,在最小超对称标准模型中研究了通过光子-光子碰撞产生的Chargino对。 使用所有可能的图表,以倒数第二个顺序计算该... RNS和BB场景可以在e = e-collider上以γγ碰撞模式在s = 500 GeV下访问。
  • 凹面碰撞器是Unity的一个组件,它支持复杂而精确的碰撞检测和光线投射。 在Unity中,网格对网格的碰撞只在至少一个网格是凸的情况下有效。 凹面对撞机通过提供一种自动计算一组可适应任何形状的对撞机的方法,帮助...
  • unity terrian 从3damax直接制作出来 无法拥有terrian collider 这个进行刚体FPS第一人称会往下掉,另外绘出的地形起伏也没用加了terrian colider也无法实现,不使用刚体FPS将fpscontroller的gravity设为0可以不往...
  • Easy Collider Editor 4.1 By using primitive colliders instead of mesh colliders, rigidbodies can be added to gameobjects to allow for physics interactions. No more painfully adding primitive colliders...
  • unity自带组件TrailRenderer不带Collider,如果想实现碰撞触发功能怎么实现呢 在拖尾移动时生成小球,用小球colliderr当做触发器,动态计算小球的存在时间,超时后销毁 记录小球生成时间 Point.cs记录小球生成...

    目录

     

    1.实现思路

    2.记录小球生成时间

    3.设置小球

    4.移动拖尾,动态计算

    5.测试


    1.实现思路

    unity自带组件TrailRenderer不带Collider,如果想实现碰撞触发功能怎么实现呢

    在拖尾移动时生成小球,用小球colliderr当做触发器,动态计算小球的存在时间,超时后销毁

    2.记录小球生成时间

    Point.cs记录小球生成时间,OnTriggerEnter内做触发处理

    挂载到小球预设体上面

    using UnityEngine;
    
    public class Point : MonoBehaviour
    {
        public float createTime;
        void OnTriggerEnter(Collider coll)
        {
                Debug.Log("Do something");
            if (coll.tag == "Fruit")
            {
                Debug.Log("Trail collider  Enter");
                //coll.GetComponent<Fruit>().OnHirt(50);
            }
        }
    }
    

    3.设置小球

    勾选IsTrigger,变为触发器

    取消勾选MeshRenderer,不显示小球;测试时可以显示,测试完成后取消勾选

    4.移动拖尾,动态计算

    本文用到了对象池,不用自行修改为GameObject.Instantiate、Destory

    using UnityEngine;
    using System.Collections.Generic;
    using UnityEditor;
    
    public class DrawTrailCollider : MonoBehaviour
    {
        //拖尾特效持续时长
        public static float overTime = 0.2f;
        public List<Point> pointList = new List<Point>();
        private int maxPoints = 500;
        public int minPixelMove = 5;    // Must move at least this many pixels per sample for a new segment to be recorded
        public float distanceFromCamera = 5.0f;
        private Vector3 previousPosition;
        private int sqrMinPixelMove;
        private bool canDraw = false;
    
        void Start()
        {
            sqrMinPixelMove = minPixelMove * minPixelMove;
        }
    
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.Space))//调试
            {
                EditorApplication.isPaused = true;
            }
    
            if (Input.GetMouseButtonDown(0))
            {
                previousPosition = Input.mousePosition;
    
                AddPoint(GetMousePos());
                canDraw = true;
            }
            else if (Input.GetMouseButton(0) && (Input.mousePosition - previousPosition).sqrMagnitude > sqrMinPixelMove && canDraw)
            {
                previousPosition = Input.mousePosition;
                AddPoint(GetMousePos());
    
                CheckOverTime();
    
                if (pointList.Count >= maxPoints)
                {
                    canDraw = false;
                }
            }
            else
            {
                if (pointList.Count > 0)
                {
                    CheckOverTime();
                }
            }
        }
    
        Vector3 GetMousePos()
        {
            var p = Input.mousePosition;
            p.z = distanceFromCamera;
            //Vector3 pos = XHSDK.XHSDKManager.Instance.mainCam.ScreenToWorldPoint(p);
            Vector3 pos = Camera.main.ScreenToWorldPoint(p);
            return pos;
        }
    
        /// <summary>
        /// 增加顶点
        /// </summary>
        public void AddPoint(Vector3 pos)
        {
            GameObject go = ObjectPool._instance.GetObject("Point", pos, Quaternion.identity);
            Point point = go.GetComponent<Point>();
            point.createTime = Time.realtimeSinceStartup;
            pointList.Add(point);
        }
    
        void CheckOverTime()
        {
            //移除超时的点
            for (int i = 0; i < pointList.Count; i++)
            {            
                if (Time.realtimeSinceStartup - pointList[i].createTime > overTime)
                {
                    ObjectPool._instance.SetObjectToPool(pointList[i].gameObject);
                    pointList.Remove(pointList[i]);
                    i--;
                }
            }
        }
    }

     

    5.测试

    测试基本可以达到想要的效果

    展开全文
  • Testde_wheelcollider.rar

    2020-06-12 10:59:41
    Unity 5.6.7f1 (32-bit)版本的使用wheelcollider实现惯性漂移的项目包,应该分享出来。大家有兴趣的可以研究研究,操作需要多练习。野性十足的晒车GTR
  • <p>A Compound shape is a shape built out of other shapes called child-shapes. You can see it as a holder of a group of other shapes. Use the compound shape to build rigid bodies that have more ...
  • wheelCollider

    2019-02-28 09:56:10
    mass 质量 质量越大摩擦力会越大 Suspension Distance 车轮悬架距离 wheelcollider.morotTorque 驱动力 brakeTorque 这个是刹车的动力 steerAngle 这个是控制车子的转向

    在这里插入图片描述
    mass 质量 质量越大摩擦力会越大
    Suspension Distance 车轮悬架距离

    wheelcollider.morotTorque 驱动力
    brakeTorque 这个是刹车的动力
    steerAngle 这个是控制车子的转向
    wheelcollider.rpm 这个可以获取车轮的转速
    float speed = (wc.rpm ) * (wc.radius * 2 * Mathf.PI) * 60 / 1000;//这个可以得到千米每小时 的速度(wc.rpm这个得到车轮每分钟转了多少圈(wc.radius2Mathf.PI)车轮的周长 (wc.rpm*(wc.radius2Mathf.PI)每分钟走了多长距离 乘60得到每小时的距离 再除以1000 就是km/h

    控制车轮模型的前进转动,实际就是控制模型的旋转 可以使用
    车轮模型.Rotate()进行控制,其实就是要算出每秒转动的度数
    wheelcollider.rpm360得到每分钟转的度数
    wheelcollider.rpm
    360/60得到每秒转动的度数
    车轮模型.Rotate(wheelcollider.rpm360/60Time.deltaTime*Vector.right)即可

    控制车轮模型的转向转动,实际是控制模型在竖直向上方向的转动,也就是Y轴方向 可以通过wheelcollider.steerAngle

    代码
    Vector localeuler = 轮子模型.localEulerAngle
    localeuler.y = wheelcollider.steerAngle

    再把localeuler赋值给 轮子模型.localEulerAngle就行了

    如果都用同一个轮子的层级去控制旋转有可能会有问题,那么可以让父辈去控制轮子的转弯转动,子辈控制轮子的前进转动。 只有前轮会左右转和向前转

    控制车子的刹车刹车有两种情况表示用户是要刹车,一种是车子速度大于0,用户输入后退,另一种是倒车,用户输入前进
    当刹车时,需要将驱动力设为0 wheelcollider.mortorTorque = 0
    wheelcollider.brakeTorque = 1000 表示刹车动力为1000

    wheelcollider有个属性判断轮子是否着地
    通过wheelcollider.GetGroundHit(out hit) 其中out hit 变量类型是 WheelHit hit

    展开全文
  • mesh collider

    2019-02-22 16:57:57
    如果直接在模型身上添加mesh collider的话 collider是不会跟随骨骼运动的,所以要想跟随就必须将mesh collider放到模型的根骨骼上面

    如果直接在模型身上添加mesh collider的话 collider是不会跟随骨骼运动的,所以要想跟随就必须将mesh collider放到模型的根骨骼上面

    展开全文
  • <div><p>Fix raycaster collider end event to use clearedEls property for compatibility with aframe master (future 0.8.0). This fixes ...
  • 测试方式: 每个对象做大范围正弦移动,创建1000-5000个对象,保证场景分割树的实时更新,并测试帧率 测试脚本: 移动脚本: using UnityEngine; using System.... public Rigidbody rigidbodyO...

    测试方式:

    每个对象做大范围正弦移动,创建1000-5000个对象,保证场景分割树的实时更新,并测试帧率

     

    测试脚本:

    移动脚本:

    using UnityEngine;
    using System.Collections;
    
    public class Test1 : MonoBehaviour
    {
        public Rigidbody rigidbodyObj;
    
    
        void FixedUpdate()
        {
            switch (Random.Range(0, 3))
            {
                case 0:
    
                    transform.position = Vector3.forward * Mathf.Sin(Time.time * 180) * 180;
                    //rigidbodyObj.position = Vector3.forward * Mathf.Sin(Time.time * 180) * 180;
    
                    break;
    
                case 1:
    
                    transform.position = Vector3.left * Mathf.Sin(Time.time * 180) * 180;
                    //rigidbodyObj.position = Vector3.left * Mathf.Sin(Time.time * 180) * 180;
    
                    break;
    
                case 2:
    
                    transform.position = Vector3.right * Mathf.Sin(Time.time * 180) * 180;
                    //rigidbodyObj.position = Vector3.right * Mathf.Sin(Time.time * 180) * 180;
    
                    break;
            }
        }
    }
    View Code

     

     

    生成器脚本:

    using UnityEngine;
    using System.Collections;
    
    public class Test2 : MonoBehaviour
    {
        public int count = 10000;
        public GameObject template;
    
    
        void Awake()
        {
            for (int i = 0; i < count; i++)
            {
                var go = Instantiate(template);
                go.transform.position = Random.insideUnitSphere * 10f;
            }
        }
    }
    View Code

     

     

    测试结果:

    i5的配置下

    500个动力学打开的刚体Collider已经小于20fps,使用Rigidbody.position移动和使用Transform.position移动差别不大。而且500个打开了重力的刚体Collider仅有3fps

    1万个非刚体Collider可以达到30-35fps,并且和是否开关Trigger无关。由于非刚体Collider是被动触发,我还测试了下没有Collider的情况,似乎帧率是快了1-2fps并且相对稳定,也可能是错觉。

    转载于:https://www.cnblogs.com/hont/p/6034790.html

    展开全文
  • 获取周围collider

    2020-06-30 09:28:13
    Physics.OverlapSphere(position, Distance, mask);
  • The Concave Collider is a component for Unity that enables complex and accurate collisions. In Unity, mesh to mesh collisions only work if at least one of the meshes is convex. The Concave Collider ...
  • Unity Collider的检测目前接触到的可以分为两种: 1、OnTrigger、OnCollider 2、Physics.Overlap 下面我们重点记录下第二种方法的应用。 Physics.Overlap 功能:以自身形状,向外,发射设定好长度大小的...
  • 前言 场景中会有碰撞阻挡,或者触发器,一般是美术或者策划配置,策划一般是直接配置collider,但...一般就是几种内置的collider,meshcollider、boxcollider、capsulecollider、spherecollider等,我们判断出对应的...
  • collider碰撞器

    2019-09-21 21:36:59
    Collider组件的主要功能是来进行碰撞检测; Rigibody: 刚体; Collider: 碰撞器; 对于同一个物体,要么通过刚体来操纵,那么通过变换(transform)操纵,不能同时使用刚体和变换来操纵! 碰撞发生的条件: ①.发生碰撞...
  • Unity3D中使用mesh collider和box collider的区别 踩坑过程记录。 设备是HTC的VIVE 和 Unity 5.x CPU: Intel Xeon Silver 4116 * 2 GPU: NVIDIA Quadro P6000 RAM: 64GB 这个问题是在解决项目卡顿问题的...
  • Easy Collider Editor 4.1 碰撞合编辑器,最新版,可以很好的编辑随型的碰撞盒,完成精准的碰撞。是游戏开发的好帮手,分享大家,多提宝贵意见。
  • edge Collider2D 和 polygon Collider2D的区别

    千次阅读 2019-02-18 17:14:15
    边碰撞器所围成的区域是不会进行碰撞检测的,而多边形碰撞器则会有区域,比如通过边碰撞器所围成的正方形,那么进行有效检测的只有四条边的大小,而多边形围成的正方形则有效的区域是所围成的区域。...
  • creator碰撞检测的实现和道具拾取功能;碰撞检测系统;三个接口: onCollisionEnter: function (other, self) // 开始 onCollisionStay: function (other, self) // 持续 onCollisionExit: function (other, ...
  • WheelCollider惯性漂移

    2020-06-10 23:20:55
    由于最近忙,就这样上两张图。游戏包在我的其他博客里。 实现物理惯性漂移,多加练习就好了。
  • 自己购买的一个Unity的网格插件,处理复杂三维模型的碰撞体的网格设置。要求Unity4.0以上的版本方可使用
  • Unity—Rigidbody-Collider笔记 翻译转载自官方文档圣典等处: Kinematic: 当刚体标记为运动学模式,他不会受到碰撞,力及任何物理影响,它表示你必须直接通过(Transform.position/.rotation)变换的方式来操纵...
  • WheelCollider笔记

    2019-01-30 11:49:02
    The Wheel Collider is a special collider for grounded vehicles. It has built-in collision detection, wheel physics, and a slip-based tire friction model. It can be used for objects other than wheels,....
  • 碰撞体勾选了Is Trigger 使用contactFilter2D的默认初始化字段,无效 var contactFilter2D = ...PolygonCollider2D attackBox = GetComponentInChildren<PolygonCollider2D>(); Collider2D[] polygonCollide...
  • 刚体Collider包围测试

    2019-10-07 05:47:17
    当两个Collider重叠时,他们会互相排斥出去: 如果外面大的Cube相对小的Cube质量很高,会弹出且不出现移动(已锁住弹出物旋转,如果不锁会飞出去): 如果没有足够的空间排出碰撞,会出...

空空如也

1 2 3 4 5 ... 20
收藏数 2,476
精华内容 990
关键字:

collider