我正在第三人称游戏中设置足迹声音。所有的工作都很好,除了让水碰撞正常工作。我设置了一个简单的盒子碰撞器,盒子的顶部在水面上,盒子的底部在地形和水面下。但是,当我将碰撞器设置为触发器时,玩家会通过碰撞器(正确),但光线投射也会跳过碰撞器并命中下一个对象,即地形(在“设置”中选中“光线投射”以与触发器碰撞…)。当然,如果我关掉扳机,玩家会在框式对撞机上行走,这不是我想要的。transfer.position是球员模型的胸部。水涨到模特的腰部。感谢您的帮助。谢谢
void Update () {
我是unity和编程的初学者,我正在跟踪制作Flappy Bird游戏的视频。一切都很完美,但当我运行游戏时,屏幕中间会出现一个软盘图标,一个名为DontDestroyOnLoad的东西不知从哪里开始工作。当我在谷歌上搜索的时候,我找不到或不懂任何东西。我正在发布截图,以防有人想看
此图标和dontdestroyonload仅在游戏运行时出现:
在场景和游戏视图的右侧有一个小按钮,叫做Gizmos,取消切换该按钮,应该可以解决您的问题。
也不要担心,Gizmo只能在Unity编辑器中看到,用于级
我有一个玩家有一个角色对撞机和硬币盒对撞机。当我的玩家与硬币碰撞时,我将在OnControllerCollideHit()中禁用硬币,并使用hit.gameObject.active=false(其中hit=coin gameObject)
但当我和硬币相撞时,我仍然会得到一些反作用力或是一种抽搐
我怎样才能消除任何投币盒碰撞机对玩家的冲击力
我在谷歌和一些论坛上做了很多研究,但找不到与这个问题相关的
任何代码将不胜感激
Thankx我巧妙地解决了这个问题
我在我的玩家游戏对象中添加了一个空的子
对不起,问得太多了。我对Andrew Gotow的车有问题。问题是,AI没有避开他们前面的玩家/汽车,或者他们只是继续前进并击中他们前面的玩家/汽车。当撞到汽车或任何障碍物时,它们会停止加速或停止工作。
请帮帮我。我想不出如何让人工智能不会碰到障碍物
这是我使用的代码。谢谢你的帮助
function GotNewWaypoint(newWay : Vector3, newRot : Quaternion){
wpObj.transform.position = newWay;
w
我正在编写一个生成资产包的构建实用程序函数。我已经实现了资产的增量构建。我想确保当Unity3d版本中有更新时,我想确保再次构建所有资产包。有人能告诉我如何使用脚本(C#/Javascript)获取Unity3d的当前版本吗。
谢谢
似乎有几种方法可以做到这一点
第一种方法是使用检查您的版本。我不认为这是解决你问题的办法,但无论如何,你是这样使用它们的:
//特定版本定义,包括次要修订
#如果统一2,6,0
//使用Unity 2.6.0特定功能
#恩迪夫
//特定版本定义不包括次要修订
#如果
标签: Unity3d
constructorunity-components
我是unity的新手,在了解架构方面有点困难
假设我有一个名为“component a”的C脚本组件。
我希望组件A有一个由100个“组件B”类型的其他组件组成的数组。
如何用特定的值以编程方式构造“组件B”
注意,“组件B”是从“MonoBehavior”派生出来的,因为它需要能够调用“Start例程”
我知道,在unity中,您不会像通常在OO中那样使用构造函数
请注意,“组件B”是从“单一行为”派生出来的,因为它需要
能够调用“Start例程”
我知道,在unity中,您并不像通常那样使用
我在改变相机的注视目标时遇到了一些问题。现在,我将此脚本“Zoomer”附加到主摄影机,它创建了一个“target”变量,可以在inspector中更改:
using UnityEngine;
using System.Collections;
public class Zoomer : MonoBehaviour {
public Transform target;
// Use this for initialization
void Start () {
}
// Update is
我目前正在开发一个应用程序,最初的目标是实时获取Kinect设备“看到”的环境的3D模型。这些信息稍后将用于投影贴图,但目前这不是问题
有两个挑战需要克服,即Kinect将安装在移动平台(机器人)上,并且模型生成必须实时(或接近实时)进行
在对这个主题进行了长期研究之后,我提出了几种可能的(?)体系结构:
1) 使用从Kinect获得的深度数据,将其转换为点云(此步骤使用PCL),然后是网格,然后将其导出为Unity以进行进一步的工作
2) 使用从Kinect获得的深度数据,将其转换为点云(此步
我在将AppWarp Unity SDK(未指定版本,于3月10日下载)与Unity 4.3.4 Android player集成时遇到了这个基本问题。
AppWarpVikingMobile示例失败,并出现相同错误。
“telnet appwarp.shephertz.com 12346”未连接到服务器。Wireshark不显示任何数据包(使用过滤器“host appwarp.shephertz.com”运行)
2月份这里也有类似的问题,但仍未解决。
似乎是SDK导入/兼容性问题。
有什么想法
我试图将我的Windows Phone游戏移植到Unity,但在异步服务器调用方面遇到了一些问题:
public static async Task<T> Get<T>(String path)
{
HttpClient client = CreateHttpClient();
var clientResponse = await client.GetAsync(Config.SERVER_URL + path);
return JsonCon
我使用的是Unity,我可以在设置中选择两种颜色空间模式:Gamma或线性空间。
我试图建立一个自定义的照明表面着色器,但我面临一些问题,这些颜色空间。因为根据颜色空间的不同,渲染不同。
如果我渲染lightDir、Normal或viewDir,我可以看到它们根据我使用的颜色空间而不同。
我做了一些测试,我在线性空间中得到的结果非常好,但是如何在Gamma空间中得到相同的结果呢?
是否存在一些转换?我应该在哪个组件上应用这些转换?“Gamma空间”可能指的是sRGB,它使用的Gamma指数为2.
嗨,我使用Unity已经有一段时间了,在我的一生中,我仍然无法分辨OnCollisionStay和OnCollisionCenter之间的区别。我假设当一个刚体(如球)与另一个刚体/碰撞器(如墙)接触时,调用OnCollisionCenter。但当我看一下OnCollisionStay的例子时,我完全困惑了。即使它每帧调用一次,例如,如果我跳到空中,撞到我上方的天花板,它仍然被调用吗?到底有什么区别?下面是Unity文档所说的内容和我使用的代码
“当此碰撞器/刚体开始接触另一个刚体/碰撞器时,将
我有一个炸弹,想让它在被触碰时爆炸。我刚刚试着用光线投射来实现这一点,但有些东西不起作用。我正在使用unity 2d设置
当然,我也在电脑上编程,所以是否有一些设置我必须设置,使其识别鼠标点击作为触摸
#pragma strict
var explosion:GameObject;
function Update () {
for (var i = 0; i < Input.touchCount; i++) {
if (Input.GetTouch(i).pha
如何正确提取位于的zip文件
和
我尝试了内置的Windows zip功能,并以管理员权限运行了7zip。我试着将其报告为一个bug进行解析,但当我试图提交时,他们的bug跟踪系统给了我一个404
访问这些URL的具体路径如下
PARSECO--> DOCS->在开始构建-开始-链接>数据-Unity >新项目>下载空白统一项目 < P>解决方案是使用WINRAR而不是7zip或内置的Windows ZIP功能。这不仅仅是一个重新下载的问题,WinRAR和7zip生成的目录是不同的。关于通用计
标签: Unity3d
shaderhlslfragment-shader
我一直在从事一个项目,其中涉及到我与着色器编码一些我不熟悉的工作。另一个团队成员向我提供了一些HLSL代码,并一直在尝试在unity中实现。由于无法直接使用提供的代码,我一直在尝试将其转换为unity希望它采用的格式,如下所示。我只是想看看是否有任何明显的地方我出错了它编译得很好,我可以将它附加到一个对象上,但它只是一个平面黑色
Shader "Custom/test2" {
SubShader {
Pass{
CGPROGRAM
#pragma fragment fra
我有一个功能,每100帧在屏幕上生成一个游戏对象:
var trash : Transform ;
function Update()
{
if(count == 1)
{
Instantiate(trash,new Vector3(UnityEngine.Random.Range(-3f,3f),UnityEngine.Random.Range(-3f,3f),UnityEngine.Random.Range(-3f,3f)), Quaterni
标签: Unity3d
2dgame-physicsunity3d-2dtools
可以在3d游戏对象上使用物理2D组件(刚体2D、碰撞R2D等)吗。我计划开发一些3d模型的2个游戏
谢谢 不是,但是你可以用rigidbody3d锁定物理运动和旋转。例如,如果您只希望它沿游戏的x轴和y轴移动,请在“检查器”中为刚体组件勾选“冻结z移动”框
我正在尝试使用Unity的WheelCollizers创建一个可驾驶汽车模型,我已经设置了CarControl.cs脚本,如下所示:
我遇到两个问题:
在完全平坦的路面上,汽车在没有任何转向的情况下轻微转向。
给定施加在车辆上的扭矩,车辆的加速和减速不一致。
为了更好地理解我的意思,我对设置进行了视频录制并进行了播放:没有深入研究,我最初的印象是您的车轮对撞机摩擦值可能太低。增加前进摩擦力可能有助于缓解不稳定的加速,而侧向摩擦力可能会解决转向问题。Unity 5升级了PhysX发动机,并承认在以
Unity 5是否支持部分隐藏UI/图像
例如,我的场景中的UI/图像有100个宽度和100个高度。
在time=0时,UI/图像被隐藏。当time=5时,UI/图像仅显示前50个像素。当time=10时,用户界面/图像已完全绘制。首先,我可以想出两种解决方法
如果所讨论图像的背景是纯色,则可以使用与覆盖实际图像的背景颜色相同的另一图像,使其看起来像是部分显示了实际图像。然后,随着时间的推移,只需缩短此覆盖图像的长度,即可通过使用来实现显示效果
使用alpha通道创建多个图像文件,并随时间更改U
标签: Unity3d
game-physicsunityscriptrigid-bodies
Unity 5.0.0p2中的以下代码似乎有误:
rigidbody2D.velocity.x = Input.GetAxis("Horizontal") * 10;
因此,我尝试了以下代码:
GetComponent<Rigidbody2D>().velocity.x = Input.GetAxis("Horizontal") * 10;
GetComponent().velocity.x=Input.GetAxis(“水平”)*10;
但它仍然不起作用。出现以下几个错误消息
在Unity 5.2中,我有9个问题—在精灵表中切片精灵。
Unity似乎忽略了9片,尽管我已经正确设置了边界。我的按钮图形变得完全伸展,这是带有按钮边框的精灵表
如果我尝试在单个sprite文件上执行相同的切片,那么它就可以工作
不可能在一张小精灵纸上切9片吗?还是我做错了什么
谢谢 我的方法是使用脚本将所有精灵信息复制到多纹理精灵表中:
int numberOfItemSlices = rects.Count(); //total number of sprites
List<S
我想在纹理中绘制相机视图,如果相机不移动,则在画布中显示纹理。我为android运行它,然后我得到了黑色的texuture,但对于WebPlayer是好的
public RawImage rawImage;
private void Start()
{
texture = new RenderTexture(camera.pixelWidth, camera.pixelHeight, 32, RenderTextureFormat.ARGB32);
texture.antiAli
我刚从资产商店下载,我想不出一件事。在我的项目中,我基本上使用一种材质作为调色板-我的模型是低多边形,所以我只需将UV映射到正确的颜色上。由于这个原因,我不知道是否有任何理由使用atlas纹理功能。如果您正在使用以减少纹理数据量,则不需要制作atlas。在您的例子中,由于只有一个纹理作为调色板,所以不需要对纹理进行贴图,因为通常需要对多个纹理进行贴图 如果使用减少纹理数据量,则无需制作atlas。在您的例子中,由于只有一个纹理作为调色板,所以不需要对纹理进行贴图,因为通常需要对多个纹理进行贴图
不要弄清楚为什么他们在构建设置中称它为播放器
因为Unity3D是一个解释型开发环境。您向Windows发送的文件与向Android发送的文件相同。改变的是读取文件并在机器上运行的程序
读取并运行项目文件的程序名称为“播放器”,因为它“播放”文件。这类似于在互联网上播放Flash文件的“Flash播放器”。“Unity Player”可以在您发送到的任何设备上播放Unity文件。谢谢您的回答
我正在开发一款基于虚拟现实的Android游戏,在游戏中,玩家可以自由地在游乐园里走动,游乐园里到处都是摊位、玩具、摩天轮、铁轨和其他嘉年华游乐设施。现在,如果我放置一个大的网状物,比如轨道和摩天轮,每个都有大约400k+的polycount,当我在我的智能手机(galaxy s7 edge)上运行它时,我会在虚拟现实中看到scean时遇到挂接和拉格。我还减少了一些对象的多边形,固定了纹理分辨率,但仍然无法接近以50-60fps的速度运行
主要问题(不仅在虚拟现实中)是动态照明。
尝试禁用所有
标签: Unity3d
texturescoordinatesshaderquadtree
正如您在图像中看到的,在n>1的较大瓷砖上,纹理应该重复,只要当前矩形大小不变。。我不知道我怎样才能做到这一点
仅供参考,我正在使用顶点颜色的alpha值获取瓷砖纹理id
这里是我正在使用的着色器
[更新]
谢谢你澄清紫外线坐标,不幸的是这不能回答我的问题。看看下面的图片
你的着色器很好;实际上,问题在于顶点UV:
因此,对于所有矩形,uv坐标如下[0,0]/[0,rect.height]/[rect.width,0]/[rect.width,rect.height]。所以UV超过了1
着色器设
我的游戏有7个场景。其中一个场景是“玩”场景,巫婆是我的游戏场景。在这场比赛中,一场比赛包括3轮。我将一些比赛数据保存在“MatchManager”脚本中,该脚本附加到MatchManager游戏对象上,该对象有一个单例并且不会在加载时销毁。其他信息在附加到游戏对象(PSceneManager)的脚本(PSceneManager)中,属于“播放”场景。
在每一轮结束时,我更改一些数据,然后我必须再次加载“播放”场景。
这是我的问题:当它再次加载时,它在一开始就停止了,甚至没有进入“开始”功能(方
假设我有一个UI画布,它被设置为“世界空间”,并且绝对位于多维数据集上方的世界中
我的多维数据集在运行时调整大小
在不缩放画布的情况下,如何设置画布的大小以匹配立方体的已知世界单位宽度
我知道您可以使用以下方法将画布设置为“画布单位”:
var rect = canvas.GetComponent<RectTransform>();
rect.sizeDelta = new Vector2(200, 200);
var rect=canvas.GetComponent();
rec
我正在尝试学习如何在Unity中编写着色器,但在将颜色和Alpha值与其他纹理(或层)分离时遇到困难
在我的着色器中,我有3个字母纹理(每个字母的背景在unity纹理设置中都是透明的)
我想有一个背景色,然后我需要3个纹理/层的背景上,能够改变色调和阿尔法的每一层,而不影响背景或任何其他层
还有
当我在surf函数中将颜色与纹理相乘时,纹理色调会发生变化,但透明背景也会发生变化。为什么透明背景的色调在透明时会发生变化
Properties{
_Background("BackroundCol
我对着色器编程非常陌生,我尝试创建一个着色器,该着色器:
允许使用2个对应的法线贴图更改2个纹理淡入/淡出
双面显示曲面两侧的网格
以下是我的结论:
Shader "Custom/TextureBlend" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
_Blend ("Texture Blend", Range(0,1)) = 0.0
_M
我使用unity和visual studio 2017调试和编辑我的unity代码,并创建了一个bool函数,但当它返回true时,if语句不会执行其中的操作:-
我的职能:-
private bool EnemyClosed(float enemyv, float playerv)
{
for(float i = -0.9f; i<=0.9f; i+=0.1f)
if (enemyv == (playerv + i))
return tru
我是着色器新手,我正在尝试为一些非常简单的低多边形水制作着色器。我创建了这个简单的曲面着色器,可以更改顶点高度
问题是它没有像你在gif中看到的那样接收阴影,而且边缘有一种奇怪的行为
我做错了什么
Shader "Ramble/LowPolyWater" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_Color ("Main Color", Color) = (1,1,1,1)
我正在Unity中制作一个名为“Popper”的2D游戏,我想在屏幕上显示一个红色气球.png文件图片,我不只是想要红色气球,我想要不同的颜色
有没有比制作不同颜色的图片文件更简单的方法?如果我必须使用不同的图片文件,如何使它们随机出现在屏幕上?您可以制作一个白色气球png。它们是最容易改变颜色的。我发现统一改变颜色总比为每种颜色创建一个图像要好。更方便,节省应用空间
然后在脚本中使用这个
void Start()
{
var rnd=随机范围(0,6);
交换机(rnd)
{
案例(1):
G
从13:12到官方统一教程结束,我有一个问题:这是否意味着,理想情况下,我们不应该在游戏对象上有碰撞器组件,除非我们也有刚体?因为如果我们只有一个对撞机,Unity会认为游戏对象是静态的。因此,我们应该始终添加刚体,并指出它是运动学的。在静态对象上使用碰撞器是完全正确的,如果不添加刚体就不会移动。由于这些对撞机被缓存在物理引擎中,因此性能甚至更好
在地板上加一个刚体是没有意义的,它永远不会移动 在不添加刚体而不移动的静态对象上使用碰撞器是完全正确的。由于这些对撞机被缓存在物理引擎中,因此性能甚至
我正在尝试访问我的scrollrect,以了解是否使用了组件的拖动,但是on-drag方法是一个函数,正如文档中所说的,有一些想法如何访问ondrag,如:
“如果ondrag处于活动状态…”请参阅和
您只需在自己的组件上使用接口IBeginDragHandler和iendraghandler,例如在那里设置bool
public类YourComponent:monobhavior、IBeginDragHandler、iendraghandler
{
公共bool isDrag{get;私有
我有一个着色器,可以创建和旋转2或3色渐变。我的问题是它在GPU上非常沉重,所以我将这部分代码从片段着色器移动到顶点着色器:
fixed4 frag (v2f i) : SV_Target
{
//STARTS HERE
float2 uv = - (i.screenPos.xy / i.screenPos.w - 0.5)*2;
fixed3 c;
我正在进行一个Unity项目,我需要计算用户采取下一步行动所需的时间
游戏中的每个对象都是通过使用鼠标移动并拖动来移动的,因此每当用户停止拖动主要对象时,计时器就会启动,当用户再次拖动对象时,计时器就会停止
这是我的拖动和计时器脚本:
private float startPosX;
private float startPosY;
public bool isHeld;
//private float distance = 10;
private float s
我有一个着色器,可以显示网格的顶点颜色,并能够剪裁蓝色顶点。我希望用户能够在使用应用程序时打开/关闭此设置
我试过这里和这里的建议
但到目前为止,这些都没有对我起作用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HoloToolkit.Unity;
using System;
public class AnchorScript : MonoBehaviour
{
pri
我需要一些帮助来滑动对象,或者我们可以说移动我接触过的对象
我已经创建了只能够拖动一个按钮的代码。
假设我按了第一个按钮,它应该是活动的刷卡
这是我的屏幕显示。
我想为每个按钮创建代码,以便在滑动时拖动该按钮
这是我的纽扣
使用UnityEngine;
公共类SwipeJump:单行为
{
专用矢量2开始触摸位置,结束触摸位置;
私有刚体2d rb;
专用浮子跳线力=700f;
允许的私有布尔值=false;
浮动deltaX,deltaY;
//用于初始化
私有void开始()
{
rb=G
我是Unity2D新手,我想用力拖动和投掷我的游戏对象。基本上,我有三个游戏对象,当我把任何人拖到上面时,我应该用力朝那个方向扔
有人能告诉我怎么做吗
我尝试过这个代码,但当我要点击拖动游戏对象时,它会直接抛出而不拖动它
这是我的密码
私有刚体2d rb;
专用浮子跳线力=700f;
允许的私有布尔值=false;
浮动deltaX,deltaY;
字符串按钮_name=“”;
//用于初始化
私有void开始()
{
Debug.Log(“已启动”);
rb=GetComponent();
P
我真的不知道从哪里开始
这个问题在我安装mrtk v2.0之后开始出现。
在此之前,我能够毫无问题地部署
我得到的错误是:
解决方案最终在visual studio中将解决方案重新定位到sdk版本17763。仍在建设中,18362处于统一状态
感谢@davidkline ms建议您尝试此功能。您能提供一些其他详细信息吗?1.什么版本的VisualStudio?(帮助->关于应该显示类似“16.2.3”的内容)。2.您采取了哪些具体步骤导致此错误?(例如,“打开项目,切换到发行版| x86配置,将
我正试图在我的unity项目中实现语音命令,最终用于全息镜头。目前,我只是尝试使用语音输入处理程序脚本和语音输入源脚本使多维数据集更改颜色。我有处理程序脚本,但在任何地方都找不到源脚本。如何获取源脚本?为什么我没有呢?我使用的是Unity 2018.4.12f1,我使用的是混合现实工具包。如果您需要其他信息来帮助我,请询问 在MRTK2之后的版本中,不再需要SpeechInputSource。相反,必须将关键字服务(例如,Windows语音输入管理器)添加到输入系统的数据提供程序中。请查看Spe
我试图在WebGL中构建我的unity项目,但它总是给我一个错误。
生成结果显示它成功了,但在文件夹中,什么都没有
这是我得到的错误
FileNotFoundException:找不到文件
“C:\Users\TIGER\Desktop\UnityTest\Prototype3\Temp\stagingara\Data\Native\build.bc”
System.IO.FileStream..ctor(System.String路径,System.IO.FileMode
模式,System.
这是一个关于如何从targetThit脚本调用Score()函数到UpdateUI的快速问题?UpdateUI将把分数显示到画布上
下面是这两个脚本的片段
目标脚本
void OnTriggerEnter(Collider collider)
{
if (collider.gameObject.tag == "Green")
{
AddScoreGreen();
}
else if (col
我正在制作一个RTS,想在鼠标位置上放置一个游戏对象。这是可行的,但对象放置在错误的位置
下图显示了鼠标所在位置的光线投射。但是对象(立方体,地形的左下角)在光线投射附近没有实例化
这是我用来得到这个职位的代码,我做错了什么
toBuild.build(Camera.main.ScreenToWorldPoint(hit.point))看起来您正在世界空间中进行光线投射,但出于某种原因,您使用投射命中作为屏幕位置。它应该已经处于世界位置,所以不要使用Camera.main.ScreenToWo
当播放器盒碰撞器2d与平台水平接触时(两个与(-1,0)向量接触,两个与(0,1)向量接触),这种错误很少发生(可能是与平台发生100次碰撞中的1次)。这是非常有问题的,因为玩家不能向前跳(只是在没有任何x速度的情况下跳起来),而且看起来它撞到了一堵看不见的墙。我尝试将“物理2D”设置中的默认接触偏移增加到0.01,但没有帮助。我正在创建一个像素艺术游戏,每单位16像素 经过研究,我终于找到了解决问题的方法。我的问题是,播放器卡在我的瓷砖之间,每个瓷砖都有一个boxcollider和Tilema
有人能给我解释一下,除了我作为参数传入的一个简单的int计数器之外,这个脚本中的所有东西都是如何工作的吗?但是,如果我直接将int counter字段传递到方法中,而不是使用/ref。para,它工作得很好,这怎么可能呢?救命啊 默认情况下,将对您提供给函数的参数进行求值并传递其值(例如,传递的不是int xy,而是int xy的值,因此5)
因此,如果您直接更改值,例如,CounterAi-=1您只是更改传递给基础变量的值,而不是基础变量。因此,如果要在这些情况下使用按引用传递,则必须使用ou
如何更改Unity WebGL构建的URL?生成设置没有任何更改URL或端口号的设置。然而,以下是我的发现
以下路径包含WebGL的生成工具
Unity\Hub\Editor\2019.4.9f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools
Brotli/
data/
Demangle.js
DynamicJslibLoader.js
Emscripten/
emscripten.config
Emscripten_FastCom
脚本示例:
public class Example : MonoBehaviour
{
public ParticleSystem particles;
private GameObject prefab;
void Update()
{
// Finds object with script attached, once it spawns into scene
if (FindObjectsOfType<AnotherScript>().Leng
我如何在unity中编码或使用粒子效果来创建galaxian或galaga星场?通常,从“我如何做而不做任何工作”开始的问题在StackOverflow中并不受欢迎。除了提到粒子效应之外,我至少会尝试添加您尝试过的或您认为有效的内容。尽管如此,关于这一问题的讨论还是很多。希望其中一个能回答你的问题。