예제 #1
0
    private static Transform CreateFakeTrackers(string suffix, EmbodyTransformDebugSnapshot snapshot)
    {
        if (snapshot == null)
        {
            return(null);
        }
        var go = new GameObject(_embodyDebugPrefix + suffix);

        go.transform.SetParent(SuperController.singleton.worldScaleTransform, false);
        go.transform.position    = snapshot.position;
        go.transform.eulerAngles = snapshot.rotation;
        VisualCuesHelper.Cross(Color.white).transform.SetParent(go.transform, false);
        return(go.transform);
    }
    public void Update(Vector3 offset, Vector3 size)
    {
        gameObject.transform.localPosition = offset;

        _xAxis.localScale       = new Vector3(size.x - _width * 2, _width * 0.25f, _width * 0.25f);
        _zAxis.localScale       = new Vector3(_width * 0.25f, _width * 0.25f, size.z - _width * 2);
        _frontHandle.localScale = new Vector3(_width * 3, _width * 3, _width * 3);
        _frontHandle.transform.localPosition = Vector3.forward * size.z / 2;
        _leftHandle.localScale = new Vector3(_width * 3, _width * 3, _width * 3);
        _leftHandle.transform.localPosition  = Vector3.left * size.x / 2;
        _rightHandle.localScale              = new Vector3(_width * 3, _width * 3, _width * 3);
        _rightHandle.transform.localPosition = Vector3.right * size.x / 2;
        VisualCuesHelper.DrawEllipse(_ellipse, new Vector2(size.x / 2f, size.z / 2f));
    }
예제 #3
0
    private LineRenderer CreateHandVisualCue(List <GameObject> visualCueLinePointIndicators)
    {
        var lineGo = new GameObject();
        var line   = VisualCuesHelper.CreateLine(lineGo, Color.yellow, 0.002f, VisualCueLineIndices.Count, true);

        _cues.Add(lineGo);

        for (var i = 0; i < VisualCueLineIndices.Count; i++)
        {
            var p = VisualCuesHelper.CreatePrimitive(null, PrimitiveType.Cube, Color.yellow);
            p.transform.localScale = new Vector3(0.02f, 0.02f, 0.02f);
            visualCueLinePointIndicators.Add(p);
        }

        return(line);
    }
예제 #4
0
        public ControllerAnchorPointVisualCue(Transform parent, Color color)
        {
            var go = new GameObject();

            _xAxis       = VisualCuesHelper.CreatePrimitive(go.transform, PrimitiveType.Cube, Color.red).transform;
            _zAxis       = VisualCuesHelper.CreatePrimitive(go.transform, PrimitiveType.Cube, Color.blue).transform;
            _frontHandle = VisualCuesHelper.CreatePrimitive(go.transform, PrimitiveType.Cube, color).transform;
            _leftHandle  = VisualCuesHelper.CreatePrimitive(go.transform, PrimitiveType.Cube, color).transform;
            _rightHandle = VisualCuesHelper.CreatePrimitive(go.transform, PrimitiveType.Cube, color).transform;
            _ellipse     = VisualCuesHelper.CreateEllipse(go, color, _width);
            if (_ellipse == null)
            {
                throw new NullReferenceException("Boom");
            }
            gameObject = go;
            gameObject.transform.parent        = parent;
            gameObject.transform.localPosition = Vector3.zero;
            gameObject.transform.localRotation = Quaternion.identity;
        }
예제 #5
0
        public void Update(Vector3 offset, Vector3 scale)
        {
            gameObject.transform.localPosition = offset;

            var size = new Vector2(_baseCueSize * scale.x, _baseCueSize * scale.z);

            _xAxis.localScale       = new Vector3(size.x - _width * 2, _width * 0.25f, _width * 0.25f);
            _zAxis.localScale       = new Vector3(_width * 0.25f, _width * 0.25f, size.y - _width * 2);
            _frontHandle.localScale = new Vector3(_width * 3, _width * 3, _width * 3);
            _frontHandle.transform.localPosition = Vector3.forward * size.y / 2;
            _leftHandle.localScale = new Vector3(_width * 3, _width * 3, _width * 3);
            _leftHandle.transform.localPosition  = Vector3.left * size.x / 2;
            _rightHandle.localScale              = new Vector3(_width * 3, _width * 3, _width * 3);
            _rightHandle.transform.localPosition = Vector3.right * size.x / 2;
            if (_ellipse == null)
            {
                throw new NullReferenceException("Bam");
            }
            VisualCuesHelper.DrawEllipse(_ellipse, new Vector2(size.x / 2f, size.y / 2f));
        }