zoukankan      html  css  js  c++  java
  • unity3D常见问题

    总结自己在学习中遇到的问题。

    记录问题,帮助他人,有什么不正确的地方欢迎指正微笑


    没有发生碰撞

    两个物体(Plane和Cube)都加入了collider,当中一个加入了rigidbody,应该会产生碰撞,但是当执行时,cube总是掉下去.非常纳闷,
    经过细致研究。发现 Plane和Cube的Transform.position Y 同样,也就是两个物体的Y坐标一样,两个物体是相接触的,所以没有发生碰撞


    ==================================================================================================================

    Plane与rigidbody

    Compute mesh inertia tensor failed for one of the actor's mesh shapes! Please change mesh geometry or supply a tensor manually!

    在Plane上加入了rigidbody,于是弹出这个错误。
    解决的方法。给mesh collider 的Convex 參数打上勾.或者改变collider,用薄的box来取代plane




    ==================================================================================================================

    Screen.showCursor = false没用

    在Game视图下不起作用了,刚開始还起作用的。
    解决方法:公布游戏。在游戏里就看不到鼠标了(可能是视图的原因。也可能unity存在bug)
    ==================================================================================================================

    在摄像机里找不到物体

    观察相机的XYZ坐标,与物体的XYZ坐标。

    是不是重合.看Y看是不是在同一个高度。看Z。看是不是距离太远,或者物体在相机的背面,看X,看物体是不是在相机左側或右側太偏了

    一般相机的默认position(0,1,-10)
    ==================================================================================================================

    Object reference not set to an instance of an object

    报错显示在这行: Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition);
    经检查 Input.mousePosition 不为null ,我并没有引用null 对象啊。非常奇怪。
    原因(引用了NULL对象):我之前把默认的MainCamera删掉了,自己加入了Camera,而这行代码是找主相机,所以没有找到
    解决的方法:把camera属性右側Tag改为MainCamera
    ==================================================================================================================

    "SetDestination" can only be called on an active agent that has been placed on a NavMesh.


    原因:没有bake,或者bake的不正确
    解决方法:让对象自己主动寻找路径,使用Navigation烘焙地图中不可移动的对象
    1.打开主菜单Windows->Navigation.  在Hierarchy中选上全部障碍物,在Navigation窗体,将Navigation Static打上勾
    Navigation Layer设置为not walkable
    注意:烘培时不要选择地形Terrain
    2.Component->Navigation->NavMeshAgent给角色加入NavMeshAgent组件
    3.在Navigation窗体中点击 Bake 烘培
    4.改动Update.
    NavMeshAgent nAgent=gameObject.GetComponent<NavMeshAgent>();

    Debug.Log(nAgent);//观察是否获取到了对象

    nAgent.SetDestination(hit.point);

     注意:bake地图会非常慢。假设不是必须,不要使用这样的方式

  • 相关阅读:
    TCP/IP详解学习笔记
    C++知识库
    C++中基类的析构函数为什么要用virtual虚析构函数
    秒杀多线程面试题系列
    很详细全部的WinDbg学习资料
    Ubuntu中libprotobuf版本冲突的解决方案
    Windows系统中内存泄露与检测工具及方法
    Ubuntu脚本修改IP信息
    【Qt】Qt Quick 之 QML 与 C++ 混合编程详解
    分布式系统消息中间件——RabbitMQ的使用基础篇
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/7001938.html
Copyright © 2011-2022 走看看