标签: unity3d-2dtools

Unity Error:UnityEngine.Component'不包含`velocity'的定义

我对C#很新,所以如果这很明显,请原谅我.

我正在按照本教程中的步骤操作,并在第六步遇到问题.它给出的错误是:它给出的错误是这样的:

UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?'
Run Code Online (Sandbox Code Playgroud)

这是代码:

using UnityEngine;
using System.Collections;

public class RobotController : MonoBehaviour {
//This will be our maximum speed as we will always be multiplying by 1
public float maxSpeed = 2f;
//a boolean value to represent whether we are facing left or not
bool facingLeft = true;
//a value to represent our …
Run Code Online (Sandbox Code Playgroud)

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

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

通过脚本更改动画控制器

我有 2 个控制器可能

1-ControllerBLUE.controller(默认)

2-控制器RED.controller

如何从脚本更改控制器

我试过:

var colorController = GetComponent(Animator);


 colorController.runtimeAnimatorController =   Resources.Load("main/colors/controllercolors/ControllerRED.controller ") as RuntimeAnimatorController;
Run Code Online (Sandbox Code Playgroud)

但这不起作用,只是将动画控制器设置为:“无(运行时动画控制器)”

是否可以 ?我怎样才能让它发挥作用?

animation unity-game-engine unityscript unity3d-2dtools

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

2D碰撞检测方法未被调用

我知道之前已经问过这个问题,但我无法在任何地方找到答案,所以请不要将此标记为重复.

我想在Unity中制作2D游戏,我需要检测击中敌人的子弹.

我在敌人预制件和子弹预制件上都有一个Box Collider 2D和一个Rigidbody 2D.

首先,我尝试不检查"Is Trigger"框.

这是我使用的代码:

function OnCollisionEnter2D(coll: Collision2D)
{
    Debug.Log("Detected !");
}
Run Code Online (Sandbox Code Playgroud)

没有成功.

接下来我尝试勾选'Is Triggered'框,并使用以下代码:

function OnTriggerEnter2D(other: Collider2D)
{
    Debug.Log("Detected !");
}
Run Code Online (Sandbox Code Playgroud)

再一次,没有成功......

我在两个对象上的组件是'Box Collider 2D'.

我尝试的方法都没有返回任何错误消息,函数只是没有被调用.

如果有人请知道发生了什么,请尽快告诉我 - 我无法继续处理我的游戏,直到这个工作:/

这是Unity的错误吗?我应该报告吗?

此外,以下是其中一个对象上的检查器的屏幕截图: 截图

欢呼任何能回答我所有问题的人!对不起,如果我没有对我的帖子进行格式化,我对论坛不熟悉......

Fjpackard.

collision-detection unity-game-engine unityscript unity3d-2dtools

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

Unity3D:将文本添加到预制件

我正在 Unity 5 中制作一个 2d 棋盘游戏风格的游戏,并且我有一个由几个代表游戏片段的精灵组成的预制件。我希望预制件中有一些文本可以随着游戏的进展进行更新。

如果我尝试添加文本,它需要一个画布,但是当我创建画布时,会创建一个非常巨大的画布,看起来至少比相机区域大 1000 倍。如果我尝试将这个画布放入我的预制件中,我的预制件现在由一个巨大的画布和我的微小精灵图像组成。这使得预制件无法定位、计算大小、制作动画或我想做的任何其他事情。

如何将文本添加到预制件中,并使文本包含在我的预制件尺寸内?

到目前为止,这是我尝试过的:

  • 如果我将文本的画布设置为“渲染模式:世界空间”,我可以使其矩形变换变小。然而,如果我把它设置得和我的精灵一样小,文本就会变得难以阅读的模糊混乱。我猜发生这种情况是因为我的精灵实际上画布小 1000 倍,所以当我放大到足以看到精灵时,文本已被放大到被遗忘。我的精灵比画布小得多,如果我缩小以查看整个画布,我的精灵甚至不可见。

  • 如果我使用 UI 图像而不是精灵重新创建预制件,我就可以让事情正常进行。这样,UI 图像和文本都是包含在巨大画布中的 UI 元素,因此不存在大小差异。然而,我不知道尝试用 ui 图像而不是精灵构建整个游戏会遇到什么陷阱。我可以获得精灵的所有状态能力吗?

unity-game-engine unity3d-2dtools

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

来自eventTrigger OnPointerDown的连续输入

就像Input.GetKey()键盘一样,有没有办法从UI按钮事件触发器中 获取连续的输入OnPointerDown?因为对于带有动画的运动控件,其输出非常奇怪?我必须一次又一次单击它,我不想!

如果答案是手动跟踪,那么该怎么做?

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

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

如何在Unity中的2D画布上播放3D动画

我喜欢在Canvas上播放动画.

我制作了一个画布,如下图所示. 在此输入图像描述

我喜欢在绿色帆布上玩高尔夫球手动画.可能吗?

我有动画模型,如第二张图所示.

我喜欢在画布上播放高尔夫球手动画.我怎样才能做到这一点?我拖动并放在画布下作为子对象,它不起作用.

在此输入图像描述

unity-game-engine unity3d-2dtools

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

如何检测 Unity 游戏是否正在(网络键盘)或(移动触摸)上运行

基本上,我有一个由移动设备中的物理键盘和触摸屏支持的统一游戏。我已经完成了物理键盘的移动脚本,现在我正在为触摸屏编写代码。

我怎样才能实现该检测功能?

我在想类似的事情......

private void HandleInput()
{
   if (detect if physical keyboard here...)
   {

        if  (Input.GetKey(KeyCode.RightArrow))
        {
            _normalizedHorizontalSpeed = 1;
        } 
        else if (Input.GetKey(KeyCode.LeftArrow))
        {
            _normalizedHorizontalSpeed = -1;
        }
   } else if (detect touch screen here...)
   {
       for (int i = 0; i < Input.touchCount; ++i)
       {
          if (Input.GetTouch(i).phase == TouchPhase.Began)
          {
             some code here...
          }
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

欣赏

mobile unity-game-engine unity3d-2dtools

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

当鼠标悬停在UI按钮上时更改它的源图像吗?(统一)

您好,我是Unity新手,我试图使UI按钮在鼠标悬停在其上时更改其“源图像”,并且当鼠标不再位于该按钮上方时,该按钮的“源图像”恢复正常。我知道需要一个精灵作为按钮的源图像,所以我创建了两个图像精灵文件(一个是普通图像,另一个是鼠标悬停在按钮上时的点亮图像)。

现在这是具有正常源图像的播放按钮的屏幕截图

在此处输入图片说明

当鼠标移到按钮上时,按钮将通过点亮来更改其源图像

在此处输入图片说明

如何在C#中执行此任务?当鼠标悬停在C#上时,如何更改按钮的源图像?

这是我看了一些参考文献后得到的。我是Unity新手,对我的知识不足感到抱歉

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

public class PlayButton : MonoBehaviour {

    private PlayButton pb;
    private Sprite newSprite;

    // Use this for initialization
    void Start () {
        pb = GetComponentInChildren<PlayButton> ();
    }

    // Update is called once per frame
    void Update () {

    }

    public void onClick(){

    }

    public void onPointerHover(PointerEventData eventData){
        //When mouse hovers over the button, the button changes
        pb.image.overrideSprite = newSprite;
    }
 }
Run Code Online (Sandbox Code Playgroud)

c# user-interface button unity-game-engine unity3d-2dtools

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

如何在 Unity 3D、2D 编辑器 MonoDevelop 中使用 Debug.Log() 在一行中打印 **********

我要打印

*****
*****
*****
*****
*****
Run Code Online (Sandbox Code Playgroud)

通过使用 monoDevelop 的 Debug.Log() 在 unity 控制台中使用 for 循环。这是我的代码:

for(int row=1;row<=5;row++)
{
  for(int column=1; column<=5;column++)
     {
         Debug.Log("*");
     }
}
Run Code Online (Sandbox Code Playgroud)

但它以这种方式显示输出:

*
*
*
*
*
till 25 rows. 
Run Code Online (Sandbox Code Playgroud)

c# monodevelop unity-game-engine unity3d-2dtools unity5

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

如何在 Unity 中使用 WASD 移动 2D 对象

我下面的代码仅适用于水平移动。垂直运动不应该也起作用吗?我刚刚开始学习基本的 2D Unity 编程:

public class Player : MonoBehaviour {

    //These fields will be exposed to Unity so the dev can set the parameters there
    [SerializeField] private float speed = 1f;
    [SerializeField] private float upY;
    [SerializeField] private float downY;
    [SerializeField] private float leftX;
    [SerializeField] private float rightX;

    private Transform _transformY;
    private Transform _transformX;
    private Vector2 _currentPosY;
    private Vector2 _currentPosX;

    // Use this for initialization
    void Start () {
        _transformY = gameObject.GetComponent<Transform> ();
        _currentPosY = _transformY.position;        

        _transformX = gameObject.GetComponent<Transform> ();
        _currentPosX …
Run Code Online (Sandbox Code Playgroud)

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

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

相机每隔几秒跟随背景对象的 Rigidbody 抖动一次

相机跟随 Rigidbody2D 每隔几秒抖动一次背景(非刚体)对象(障碍物)。Profiler 中的 FPS 很好,接近 100。插值也很好。使用Unity 2017.4.12(LTS)

GIF GIF 视频在这里

相机跟随脚本

 public class CameraFollow : MonoBehaviour {
        public float followRange = 0.5f;
        public float cameraZ;
        public Transform Player;
        public Vector3 newPos;
        void Start () {
            cameraZ = transform.position.z;
        }
        void FixedUpdate() {
            newPos = new Vector3(Player.position.x + followRange, 0, cameraZ);
            transform.position = Vector3.Lerp(transform.position, newPos, 0.5f);
        }   
    }
Run Code Online (Sandbox Code Playgroud)

播放器脚本:

public class PlayerBall : MonoBehaviour {

    public float xSpeed = 10;

    // Update is called once per frame
    void FixedUpdate () …
Run Code Online (Sandbox Code Playgroud)

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

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

密码输入字段被审查(****)-记录和注册

我打算进行日志记录和注册。但是我有一个问题。我无法使密码输入字段变得像*****(被检查)。

也许它不会影响您的答案,但我的游戏将在android平台上进行。

这是示例图片:http : //i.hizliresim.com/WnLjX2.png

谢谢。

c# android unity-game-engine unityscript unity3d-2dtools

0
推荐指数
2
解决办法
3575
查看次数

如何在Unity3D中为2D云设置动画?

我有2D游戏和云精灵.我需要为它制作动画.对于云,例如在屏幕的左边缘随机生成并移动到屏幕的右边缘.云计数必须在1到4之间变化,可以在屏幕上同时显示.
我该怎么做?我需要使用什么(编写自己的脚本或Unity3D已经有一些工具?

unity3d-2dtools

0
推荐指数
1
解决办法
2135
查看次数