小编Ban*_*ane的帖子

如何使用自定义编辑器移动另一个Bezier曲线

我创建使用下面这是我从拿到代码贝塞尔曲线 在这里.我还制作了一个BezierPair游戏对象,它有两条贝塞尔曲线作为子对象.

从下面的相应图像和BezierPair,其中points[0]...... points[3]表示为P0...... P3:

  1. 我希望P0每个Bézier曲线在移动时始终保持不变.换句话说,我希望他们总是一起移动,同时选择关闭这个动作.

在此输入图像描述

  1. P1两条曲线是分开的.如何使P1每条曲线在相同距离的相同方向上移动?

在此输入图像描述

  1. P2两条曲线是分开的.我怎样才能让P2一个曲线镜P2沿连线另一曲线 P0P3?注意,镜像线将从曲线1在下面的例子中,因为采取curve1P2运动.如果curve2P2移动,则反射镜线将取自curve2S' P0P3.

在此输入图像描述

我不想在运行时这样做.因此必须使用自定义编辑器.我尝试在下面的代码中解决1.但是如果没有在层次结构窗口中选择BezierPair,第二条曲线的位置将不会更新

贝塞尔:

public static class Bezier {

public static Vector3 GetPoint (Vector3 p0, Vector3 p1, Vector3 p2,   Vector3 p3, float t) {
t = Mathf.Clamp01(t);
float oneMinusT = 1f - t;
return
    oneMinusT * oneMinusT …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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

在选择时突出显示时,如何在场景中始终显示句柄?

我想让编辑器中的所有句柄显示,即使未选择给定的游戏对象,这样当鼠标点悬停在给定的句柄上时,它变得可选.我怎样才能做到这一点?

unity-game-engine unity3d-editor

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

如何使用协程将子对象旋转到某个角度时旋转父对象

我有一个半圆形的游戏对象,我通过在空游戏对象(SCircle)中放置两个弧并旋转15°(对于左弧)和-15°(对于右弧)来制作,如下所示.

在此输入图像描述

SCircle有一个Orientation带有两个值的枚举Left(旋转SCircle到45°)和Right(旋转SCircle到-45°),如下图所示.

在此输入图像描述

我使用以下协程SCircle在方向之间移动.

IEnumerator RotateLeftOrRight(Vector3 byAngles, float inTime)
{
   Quaternion fromAngle = gameObject.transform.rotation ;
   Quaternion toAngle = Quaternion.Euler (transform.eulerAngles);


   if (circOrientation == Orientation.Left) {
       toAngle = Quaternion.Euler (gameObject.transform.eulerAngles - byAngles);
       circOrientation = Orientation.Right;

   }
   else if (circOrientation == Orientation.Right) {

       toAngle = Quaternion.Euler (gameObject.transform.eulerAngles + byAngles);
       circOrientation = Orientation.Left;
   }


   for(float t = 0f ; t <= 1f ; t += Time.deltaTime/inTime)
   {
       gameObject.transform.rotation = Quaternion.Lerp(fromAngle, toAngle, t) ; …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine

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

如何确定数组中的一个元素是否具有属性的false值,以及所有元素是否具有使用Linq的true值

我有一个包含多个对象的数组,它们具有isClosedbool属性.我想知道如何确定:

  1. 如果所有值都为真

  2. 如果这些值中只有一个是假的

使用Linq.

c# linq

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

标签 统计

c# ×3

unity-game-engine ×3

linq ×1

unity3d-editor ×1