小编der*_*ugo的帖子

Docker错误:无法为服务Web创建容器:无效模式

运行docker时出现三个错误:

错误:用于学习php7_web_1无法为服务网站创建容器:无效模式:/etc/apache2/sites-enabled/virtualhosts.conf

错误:对于Web无法为服务Web创建容器:无效模式:/etc/apache2/sites-enabled/virtualhosts.conf

错误:启动项目时遇到错误。

我该如何解决这些问题并最终开始使用Docker?

我的virtualhosts.conf

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot /var/www/html/web
  DirectoryIndex index.php

  <Directory /var/www/html/web>
    AllowOverride None
    Require all granted
    Allow from All
    Options FollowSymLinks
    <IfModule mod_rewrite.c>
          Options -MultiViews
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.*)$ index.php [QSA,L]
    </IfModule>
  </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

apache docker docker-compose docker-machine

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

有没有办法阻止Visual Studio在新函数上添加'throw new NotImplementedException'?导致与Unity的命名空间冲突

是的,我知道这是正常的好习惯,但是Unity中的问题是它会导致添加System命名空间,这会破坏几个Unity类,例如Random,除非我完全限定它们,这是繁琐的:).有没有办法禁止它添加投掷?我已经尝试为它搜索一个片段但是已经画了一个空白.在输入'DoSomething();'后,从Alt-Enter执行'生成方法'时会发生这种情况.

在此输入图像描述

visual-studio-2017

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

Unity使用c#翻转纹理

如何调用FlipTextureVerticallyMakePhoto 中的方法?

我当前拍摄的照片是统一颠倒的,我遇到了这个纹理翻转代码,但我不知道如何应用它。

如果有人能在这里帮助我,我将非常感激!

public static Texture2D FlipTextureVertically(Texture2D original)
{
    Texture2D flipped = new Texture2D(original.width, original.height, TextureFormat.ARGB32, false);

    int xN = original.width;
    int yN = original.height;

    for (int i = 0; i < xN; i++)
    {
        for (int j = 0; j < yN; j++)
        {
            flipped.SetPixel(i, yN - j - 1, original.GetPixel(i, j));
        }
    }

    flipped.Apply();

    return flipped;
}

public string MakePhoto(bool openIt)
{          
    int resWidth = Screen.width;
    int resHeight = Screen.height;

    Texture2D screenShot = new Texture2D(resWidth, …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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

将函数作为函数参数传递

Unity C#似乎不将Func<>符号识别为函数委托.那么,我如何将函数作为函数参数传递?

我有一个Invoke(functionName, 0)可能会有所帮助的想法.但我不确定它是否实际上立即调用该函数,或等待帧的结束.还有另外一种方法吗?

c# unity-game-engine

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

清理现有的Unity项目并将其迁移到新的一台或另一台PC中

我希望将现有的Unity项目复制到一个新的空白Unity项目中。似乎所有对象引用和许多脚本在我的场景的层次结构中均未正确配置/存在。

我只将我的资产文件夹/package.json复制到了新的Unity项目中,因为其余文件很脏,并且缓存了许多无用的信息。

详细说明场景数据的文件在哪里?我想将其复制过来,以便可以使用所有对象引用来运行场景,并将脚本设置到正确的游戏对象上。

unity-game-engine

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

检查枚举标志是否包含某个标志值

在 C# 中(使用 Unity 处理游戏)我有一个带有 [Flag] 属性的枚举。我已经实例化了两次。我想要一种比较两个枚举的方法。特别是如果 enum A(将有多个标志)包含来自 enum B 的标志(它只会被分配一个标志)。

不想将单个实例化的枚举与单个标志进行比较(这已被多次回答)。

我怀疑我可以通过使用 GetValue 转储值并在 foreach 循环中比较这些值来做到这一点,但似乎应该有更直接的比较方法。

public enum AbilityType
{
    None = 0,
    Pierce = 1<<1,
    Blunt = 1<<2,
    Slash = 1<<3,
    Water = 1<<4,
    // etc.
};


public class Ability : MonoBehaviour
{
    public AbilityType abilityType;
}
Run Code Online (Sandbox Code Playgroud)

public class AbilitiedObject : StatisticalObject
{
    public AbilityType resistances;

    protected override void Awake()
    {
        base.Awake();
        resistances = AbilityType.Pierce | AbilityType.Water;
    }

    public void TakeDamage(int damageAmount, AbilityType abilityType)
    { …
Run Code Online (Sandbox Code Playgroud)

c# enums unity-game-engine enum-flags

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

Unity IsPointerOverGameObject 问题

我知道这是一个常见问题,但没有一个有效。可能是按钮设置错误。我有一个没有图像的面板,在左上角的设置按钮内,单击后会打开另一个场景。我尝试使用这 3 种方法,但没有一个有效。它始终将其检测为游戏对象。

boolisGameStarted正在检查玩家是否应该移动。请引导我完成

试过

if (Swipe.Instance.Tap && !isGameStarted)
{
    if (EventSystem.current.IsPointerOverGameObject() )
    { 
        isGameStarted = false;
    }
    else
    {
          isGameStarted = true;
          motor.StartRunning();
          gameCanvas.SetTrigger("Show");
    }
}
Run Code Online (Sandbox Code Playgroud)

还尝试使用触发器,但它通过用户界面。

这是原始代码。

if (Swipe.Instance.Tap && !isGameStarted)
{ 
    isGameStarted = true;
    motor.StartRunning();
    gameCanvas.SetTrigger("Show");
}
Run Code Online (Sandbox Code Playgroud)

一旦你点击屏幕,玩家就开始移动。如果单击设置按钮,我不需要它来移动或开始游戏。

c# unity-game-engine

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

Unity - 单击时如何使用网格三角形索引重新着色三角形?

我想知道如何在单击它们时在 Unity 中的网格中重新着色单个三角形。我下面的代码允许我检测点击在 3D 空间中的网格表面上的位置。从那里我尝试从网格中获取三角形索引并将颜色数组中的相应索引设置为红色。

但是,我可以看到我单击的位置(绿色立方体在图像中转换到的位置)甚至不接近三角形在网格上重新着色的位置。是否需要进行某种索引或坐标转换才能为光线投射/点击与网格碰撞的确切三角形着色?

我正在为图像中的球体使用标准的无光照着色器,有时会出现索引越界错误,这表明我在尝试将颜色数组设置为红色时超出了颜色数组的长度。

对此的任何帮助或见解将不胜感激。谢谢!

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

public class MyRayDraw : MonoBehaviour
{
    public GameObject cube;
    private MeshRenderer meshRenderer;
    Mesh mesh;
    Vector3[] vertices;
    Color[] colorArray;

    private void Start()
    {
        mesh = transform.GetComponent<MeshFilter>().mesh;
        vertices = mesh.vertices;

        // create new colors array where the colors will be created
        colorArray = new Color[vertices.Length];
        for (int k = 0; k < vertices.Length; k++)
        {
            colorArray[k] = Color.white;
        }
        mesh.colors = colorArray;
    }

    void Update()
    {        
        if (Input.GetMouseButtonDown(0)) …
Run Code Online (Sandbox Code Playgroud)

unity-game-engine

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

查找给定距离和速度的碰撞时间

假设我在位置x = 0处有一个对象A,在位置x = 16处有一个对象B。

假设A具有以下代码:

public class Move : MonoBehaviour 
{
    float speed = 0.04f;

    Update()
    {
       transform.Translate(speed, 0, 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何评估A与B碰撞需要多少秒(准确)?


如果我应用公式S = S0 + vt,它将无法正常工作,因为我不知道如何测量每秒将传递多少帧来精确测量速度。

unity-game-engine

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

Vector2.MoveTowards 不会在协程中移动我的对象

我有一个 Hookshot 类,它包含一个公共协程,当它附加到的对象(hookshot)在另一个脚本中实例化时,我正在调用它。目标是协程 CastHookshot 将对象移出设定的距离,然后启动 ReturnHookshot 协程将其移回玩家。平稳的前后运动。将会有额外的设计选择禁止我为此使用 Mathf.PingPong 或 Mathf.Sin,因此它需要是两个协程。无论如何,由于某种原因,物体根本没有移动,我不知道为什么。我用 Debug.Log 进行了测试,知道协程正在被击中。传入的 castDistance 是 50,因此循环的距离条件也不应该成为问题。

public class Hookshot : MonoBehaviour
{

    private Vector2 playerPos;
    private readonly float hookshotCastTime = 0.2f;
    private readonly float hookshotReturnSpeed = 4f;
    private readonly float hookshotDistanceBuffer = 0.2f;

    public IEnumerator CastHookshot(float castDistance, Vector2 aimDir)
    {
        playerPos = gameObject.transform.position;
        Vector2 target = playerPos + (castDistance * aimDir);
        float speed = castDistance / hookshotCastTime * Time.deltaTime;
        while (Vector2.Distance(transform.position, target) > hookshotDistanceBuffer)
        {
            transform.position = Vector2.MoveTowards(playerPos, target, speed);
            yield …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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