标签: unity3d-2dtools

Unity新UI图像更改颜色不起作用

我尝试使用统一的新UI图像系统实现健康到我的播放器.但它不工作.任何人都帮助我.谢谢.

    using UnityEngine.UI;

 if (health_value == 3) {
             GameObject.Find("health").GetComponent<Image>().color.a = 1;
             GameObject.Find("health1").GetComponent<Image>().color.a = 1;
             GameObject.Find("health2").GetComponent<Image>().color.a = 1;

         }
Run Code Online (Sandbox Code Playgroud)

我得到这个错误.

  error CS1612: Cannot modify a value type return value of `UnityEngine.UI.Graphic.color'. Consider storing the value in a temporary variable
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity3d-2dtools

4
推荐指数
2
解决办法
1万
查看次数

Unity3d:没有设置拖放功能

我正在OS X 10.10上开发Unity 2D游戏项目,我无法拖动文件或文件夹,它会显示此错误.

No Drag&Drop has been setup. Please
UnityEditor.DockArea:OnGUI()
Run Code Online (Sandbox Code Playgroud)

我试过了:

  1. 保存项目,然后重新启动
  2. 单击Assets文件夹并选择Reimport All

但它似乎不起作用,如何解决它?

unity-game-engine unity3d-2dtools unity5

4
推荐指数
1
解决办法
2464
查看次数

在Unity3D中使用Singleton

我正在尝试使用Singleton作为我在Unity中制作的游戏中的任务组织的全局数据结构.

我的Singleton类代码如下:

public class TaskManager : MonoBehaviour 
{
    private List<Task> Tasks;

    private static TaskManager instance;
    private TaskManager() 
    {
        Tasks = new List<Task>();
    }

    public static TaskManager Instance
    {
        get
        {
            if(instance == null)
            {
                instance = new TaskManager();
            }
            return instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我用这个例子作为我班级的基础:https: //msdn.microsoft.com/en-us/library/ff650316.aspx

但是,问题是,当我尝试在不同的脚本中访问TaskManager时,值不会被保存.

例如,我在一个脚本中执行以下操作:

TaskManager tm = TaskManager.Instance;

Task newTask = new Task();
tm.PushTask(newTask);

print(tm.GetTaskList().Count);
Run Code Online (Sandbox Code Playgroud)

通过这个我可以看到TaskManager的计数为1,显示了新任务.

但是我的另一个脚本试图从TaskManager中读取:

TaskManager tm = TaskManager.Instance;
List<Task> l = tm.GetTaskList();
print(l.Count);
Run Code Online (Sandbox Code Playgroud)

当我这样做时,Count返回0,表明上面的任务来自世界尚未保存到TaskManager.

我很确定这个错误是因为我误解了如何使用Singletons.我是否需要为TaskManager实例实现set属性?或者我正在制造另一个错误?

谢谢!

编辑:

PushTask()代码如下:

public void PushTask(Task …
Run Code Online (Sandbox Code Playgroud)

c# singleton unity-game-engine unity3d-2dtools

3
推荐指数
1
解决办法
5332
查看次数

Unity Animator中的慢速旋转

我有一个简单的旋转动画,可以在其轴上旋转一个对象.目前它的旋转太快了,我想放慢速度,我试过增加样品?但我对动画知之甚少,所以我可能会很富裕.如何减慢动画速度?它只有两个键.

animation unity-game-engine unity3d-2dtools

3
推荐指数
1
解决办法
4267
查看次数

构建时 Unity 画布按钮变小

我正在使用 Unity 5,当我添加 Canvas Button 时,按钮变小,这是在 Build Before Build 到 Apk 之前的样子 前

在我的 Lg g3 上构建之后: 后

unity3d-2dtools unity3d-gui unity5

3
推荐指数
1
解决办法
2211
查看次数

如何编写一个尊重排序层的 Unity Shader?

我想使用 Unitys 排序图层对我的精灵进行排序。我将自定义着色器附加到我的一个 Sprite 上。遗憾的是,带有这个着色器的精灵总是拖在其他精灵后面,不尊重排序层。

如何在我的着色器中实现排序层方面?

这就是有问题的着色器:提前致谢

Properties {
    _Color ("Color", Color) = (1,1,1,1)
    _MainTex ("Main Tex (RGBA)", 2D) = "white" {}
    _Progress ("Progress", Range(0.0,1.0)) = 0.0
}

SubShader {

    Pass {

CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"

uniform sampler2D _MainTex;
uniform float4 _Color;
uniform float _Progress;

struct v2f {
    float4 pos : POSITION;
    float2 uv : TEXCOORD0;
};

v2f vert (appdata_base v)
{
    v2f o;
    o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
    o.uv = TRANSFORM_UV(0);

    return o;
} …
Run Code Online (Sandbox Code Playgroud)

shader cg unity-game-engine unity3d-2dtools

3
推荐指数
1
解决办法
9452
查看次数

Unity:找不到UI布局元素的最大大小

在Unity UI中,LayoutElement具有最小,首选和固定大小,但没有max size属性。

例如,如果我有一个text1

layoutElement.flxibleWith = 1
layoutElement.minHeight  = 19
Run Code Online (Sandbox Code Playgroud)

text1 一行txt:

具有一行txt的text1

但是,当我在text1其中加载文本时,它的高度会无限扩展:

在此处输入图片说明

我已经编写了一个脚本:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

[ExecuteInEditMode]
[RequireComponent(typeof(LayoutElement))]

public class LayoutElementMaxSize : MonoBehaviour
{

private LayoutElement layoutElement;
private ContentSizeFitter contentSizeFitter;
private RectTransform rectransform;

public bool controllWidth;
public bool controllHeight;

public float maxHight;
public float maxWidth;

void Start()
{
    layoutElement = GetComponent<LayoutElement>();
    rectransform = GetComponent<RectTransform>();
}

public void Update()
{
    if(rectransform.hasChanged)
     {
        rectransform.hasChanged = false;

        if (controllHeight)
        {
            layoutElement.preferredHeight = -1;

            layoutElement.CalculateLayoutInputHorizontal();
            layoutElement.CalculateLayoutInputVertical(); …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity3d-2dtools

3
推荐指数
1
解决办法
4142
查看次数

如何使 2D 碰撞器随着它们绑定到的 UI 元素而缩放?

我对 Unity 还很陌生,如果您对这个问题有任何帮助,我将不胜感激。

我的设置可以很好地使用我设计的屏幕分辨率。我相信当我更改分辨率时,UI 元素可以很好地缩放,但我刚刚发现我制作的碰撞器(图像中的红线)却不能。目前,我正在使用添加到画布上的边缘碰撞器。我还尝试向每个面板添加单独的边缘碰撞器。然后我尝试了盒子碰撞器。我尝试过将面板+碰撞器变成预制件。一切都无济于事。我还尝试通过脚本设置边缘碰撞器的点,以便它们始终包裹在面板周围,但我无法得到任何碰撞(注意:我不知道如何显示/渲染这个运行时生成的碰撞器所以我不能完全确定它们是否正是我想要的样子)。

太棒了;有人知道如何使碰撞器缩放或环绕它们所绑定的 UI 元素吗?

用户界面布局图像

unity-game-engine unityscript unity3d-2dtools

3
推荐指数
1
解决办法
6339
查看次数

如何在 Unity 3D 中使用称重秤?

目前我正在使用 C# 统一创建一个 2d 平台游戏,我想知道如何创建一个像下面这样的秤。 在此处输入图片说明

为了解释一下,我想要这样,当一个重物rigidbody2d放在一个秤上时,另一个秤会向上移动,反之亦然。如果重量相等,我也希望它可以使秤平衡。我将如何接近这个?是否有一个组件可以轻松实现这一目标?

c# unity-game-engine game-physics unity3d-2dtools

3
推荐指数
1
解决办法
1576
查看次数

如何清除 LineRenderer 路径以重绘线条?

我有一个 LineRenderer 路径来显示高尔夫球的路径。请参见图片中的栗色路径。

在此处输入图片说明

private void createTrail()
{
    lineRenderer.SetColors(tracerColor, tracerColor);
    lineRenderer.SetVertexCount(maxVertexCount);
    for (int idx = 0; idx < (maxVertexCount - 2); idx++)
    {//Add another vertex to show ball's roll
        lineRenderer.SetPosition(idx, new Vector3((float)pts[idx * (int)positionSampling].z, (float)pts[idx * (int)positionSampling].y, (float)pts[idx * (int)positionSampling].x));
    }
    lineRenderer.SetPosition(maxVertexCount - 2, new Vector3((float)pts[goal - 1].z, (float)pts[goal - 1].y, (float)pts[goal - 1].x));
    lineRenderer.SetPosition(maxVertexCount - 1, transform.position);
}
Run Code Online (Sandbox Code Playgroud)

路径是使用 中的点绘制的pts[] array

在重复显示时,我需要清除旧路径以重新绘制相同的路径。如何清除旧路径?

c# unity-game-engine unity3d-2dtools

3
推荐指数
1
解决办法
1万
查看次数