示例#1
0
文件: Action.cs 项目: theseim/VPET
 //!
 //! constructor for rotation
 //! @param    newObj              transform of the gameObject on which modification is applied
 //! @param    newQuaternion       new value of rotation
 //! @param    server              reference to server adapter to communicate object changes ofer network
 //!
 public Action(Transform newObj, Quaternion newQuaternion, ServerAdapter server)
 {
     serverAdapter   = server;
     obj             = newObj;
     type            = Type.rotation;
     valueQuaternion = newQuaternion;
 }
示例#2
0
文件: Action.cs 项目: theseim/VPET
 //!
 //! constructor for light color
 //! @param    newObj              transform of the gameObject on which modification is applied
 //! @param    newLightColor       new value of light color
 //! @param    server              reference to server adapter to communicate object changes ofer network
 //!
 public Action(Transform newObj, Color newLightColor, ServerAdapter server)
 {
     serverAdapter = server;
     obj           = newObj;
     type          = Type.lightColor;
     lightColor    = newLightColor;
 }
示例#3
0
        void Start()
        {
            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();

            timeLine.StartTime = timeLineStartInit;
            timeLine.EndTime   = currentAnimationTime = timeLineEndInit;
        }
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            target = this.transform;

            //initalize cached references
            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();



            //update initial parameters
            initialPosition = target.position;
            initialRotation = target.rotation;
            initialScale    = target.localScale;

            lastPosition = initialPosition;
            lastRotation = initialRotation;



            animatorObject = transform.GetComponent <AnimatorObject>();
            if (animatorObject == null)
            {
                animatorObject = transform.parent.GetComponent <AnimatorObject>();
            }
        }
示例#5
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            timeleft = updateInterval;
            //initialize the sensor reading for the current platform
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
            initalizeSensorReading();
#elif (UNITY_ANDROID || UNITY_IOS) && !UNITY_EDITOR
            // SensorHelper.ActivateRotation();
#endif

            //sync renderInFront camera to mainCamera
            Camera frontCamera = this.transform.GetChild(0).GetComponent <Camera>();
            if (frontCamera)
            {
                frontCamera.fieldOfView   = this.GetComponent <Camera>().fieldOfView;
                frontCamera.farClipPlane  = this.GetComponent <Camera>().farClipPlane;
                frontCamera.nearClipPlane = this.GetComponent <Camera>().nearClipPlane;
            }

            //sync Outline camera to mainCamera
            if (frontCamera.transform.childCount > 0)
            {
                Camera outlineCamera = frontCamera.transform.GetChild(0).GetComponent <Camera>();
                outlineCamera.fieldOfView   = this.GetComponent <Camera>().fieldOfView;
                outlineCamera.farClipPlane  = this.GetComponent <Camera>().farClipPlane;
                outlineCamera.nearClipPlane = this.GetComponent <Camera>().nearClipPlane;
            }

            // get server adapter
            GameObject refObject = GameObject.Find("ServerAdapter");
            if (refObject != null)
            {
                serverAdapter = refObject.GetComponent <ServerAdapter>();
            }
            if (serverAdapter == null)
            {
                Debug.LogError(string.Format("{0}: No ServerAdapter found.", this.GetType()));
            }

            // get mainController
            refObject = GameObject.Find("MainController");
            if (refObject != null)
            {
                mainController = refObject.GetComponent <MainController>();
            }
            if (mainController == null)
            {
                Debug.LogError(string.Format("{0}: No MainController found.", this.GetType()));
            }

#if USE_TANGO
            tangoTransform = GameObject.Find("Tango").transform;
#else
            Camera.main.transform.parent.transform.Rotate(Vector3.right, 90);
#endif
        }
示例#6
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            mainController = GameObject.Find("MainController").GetComponent <MainController>();
            serverAdapter  = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();


            left   = -1.0f * aspect;
            right  = 1.0f * aspect;
            bottom = -1.0f;
            top    = 1.0f;
        }
示例#7
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();

            left   = -1.0f * aspect;
            right  = 1.0f * aspect;
            bottom = -1.0f;
            top    = 1.0f;

            //cache reference to main Controller
            mainController = GameObject.Find("MainController").GetComponent <MainController>();
            //sceneLoader = GameObject.Find("SceneAdapter").GetComponent<SceneLoader>();
        }
示例#8
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            undoActionStack = new ArrayList();
            redoActionStack = new ArrayList();
            editableObjects = new ArrayList();
            mainController  = GameObject.Find("MainController").GetComponent <MainController>();
            serverAdapter   = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter> ();

            //find all moveable and editable objects
            recursiveRegisterObjects(GameObject.Find("Scene").transform, editableObjects);
            editableObjects.Add(Camera.main.transform);

            addAction();
        }
示例#9
0
文件: Action.cs 项目: theseim/VPET
 //!
 //! constructor for scale and translation
 //! @param    newObj              transform of the gameObject on which modification is applied
 //! @param    newType             type of the new modification (only scale and translation valid)
 //! @param    newValueVector      new Vector3 of the modification
 //! @param    server              reference to server adapter to communicate object changes ofer network
 //!
 public Action(Transform newObj, Type newType, Vector3 newValueVector, ServerAdapter server)
 {
     serverAdapter = server;
     if (newType == Type.scale ||
         newType == Type.translation)
     {
         obj         = newObj;
         type        = newType;
         valueVector = newValueVector;
     }
     else
     {
         type = Type.invalid;
     }
 }
示例#10
0
文件: Action.cs 项目: theseim/VPET
 //!
 //! constructor for light angle, light intensity and light range
 //! @param    newObj              transform of the gameObject on which modification is applied
 //! @param    newType             type of the new modification (only lightAngle, lightIntensity and lightRange valid)
 //! @param    newValue            new value of the modification
 //! @param    server              reference to server adapter to communicate object changes ofer network
 //!
 public Action(Transform newObj, Type newType, float newValue, ServerAdapter server)
 {
     serverAdapter = server;
     if (newType == Type.lightAngle ||
         newType == Type.lightIntensity ||
         newType == Type.lightRange)
     {
         obj   = newObj;
         type  = newType;
         value = newValue;
     }
     else
     {
         type = Type.invalid;
     }
 }
示例#11
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();

            left   = -1.0f * aspect;
            right  = 1.0f * aspect;
            bottom = -1.0f;
            top    = 1.0f;

            // outline effect
            outlineEffect = Camera.main.transform.GetChild(0).GetComponent <Camera>().GetComponent <OutlineEffect>();

            // initialize the dictionary that keeps track of the status of controller buttons
            //buttonPressedState = new Dictionary<string, float>();

            //cache references
            mainController = GameObject.Find("MainController").GetComponent <MainController>();
            inputAdapter   = GameObject.Find("InputAdapter").GetComponent <InputAdapter>();
            crossHair      = GameObject.Find("GUI/Canvas/Crosshair");
        }
示例#12
0
        private void Awake()
        {
            if (sceneRoot == null)
            {
                sceneRoot = GameObject.Find("root");
            }

            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();

            if (sceneRoot == null)
            {
                Debug.LogError(string.Format("{0}: Cant find Scene Root: 'root'.", this.GetType()));
            }

            lodLowLayer   = LayerMask.NameToLayer("LodLow");
            lodHighLayer  = LayerMask.NameToLayer("LodHigh");
            lodMixedLayer = LayerMask.NameToLayer("LodMixed");

            VPETRegister.RegisterObjectSender();
            serverAdapter.initServerAdapterTransfer();
        }
示例#13
0
        //!
        //! Use this for pre initialization
        //!
        void Awake()
        {
            QualitySettings.vSyncCount  = 0;
            Application.targetFrameRate = 30;
            Resolution res = Screen.currentResolution;

            //Screen.SetResolution(res.width/2, res.height/2, true);

            // read settings from inspector values
            VPETSettings.mapValuesFromObject(this);

            // read settings from config file if wanted
            if (!ignoreConfig)
            {
                string filePath = Application.dataPath + "/VPET/editing_tool.cfg";
                if (!File.Exists(filePath))
                {
                    filePath = Application.persistentDataPath + "/editing_tool.cfg";
                }

                VPETSettings.mapValuesFromConfigFile(filePath);
            }

            // read settings from user preferences
            VPETSettings.mapValuesFromPreferences();


            // check if scene dump file available
            if (Directory.Exists(Application.dataPath + "/Resources/VPET/SceneDumps"))
            {
                VPETSettings.Instance.sceneDumpFolderEmpty = (Directory.GetFiles(Application.dataPath + "/Resources/VPET/SceneDumps", "*.bytes").Length == 0);
                // print("PETSettings.Instance.sceneDumpFolderEmpty " + VPETSettings.Instance.sceneDumpFolderEmpty);
            }

            VPETSettings.Instance.sceneDumpFolderEmpty = false;

            // Register plugins
            VPETRegister.RegisterNodeParser();
            VPETRegister.RegisterNodeBuilder();
            VPETRegister.RegisterObjectSender();

            // get all adapters and add them if missing
            //
            // get scene adapter
            GameObject refObject = GameObject.Find("SceneAdapter");

            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No SceneAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("SceneAdapter");
            }
            sceneAdapter = refObject.GetComponent <SceneLoader>();
            if (sceneAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No SceneAdapter Component found. Create", this.GetType()));
                sceneAdapter = refObject.AddComponent <SceneLoader>();
            }

            // get server adapter
            refObject = GameObject.Find("ServerAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No ServerAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("ServerAdapter");
            }
            serverAdapter = refObject.GetComponent <ServerAdapter>();
            if (serverAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No ServerAdapter Component found. Create", this.GetType()));
                serverAdapter = refObject.AddComponent <ServerAdapter>();
            }

            // copy cache name to settings
            VPETSettings.Instance.sceneFileName = serverAdapter.sceneFileName;

            // set properties
            serverAdapter.SceneLoader = sceneAdapter;

            // get animation adapter
            refObject = GameObject.Find("AnimationController");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No AnimationController Object found. Create.", this.GetType()));
                refObject = new GameObject("AnimationAdapter");
            }
            animationController = refObject.GetComponent <AnimationController>();
            if (animationController == null)
            {
                Debug.LogWarning(string.Format("{0}: No AnimationController Component found. Create", this.GetType()));
                animationController = refObject.AddComponent <AnimationController>();
            }


            // get JoystickAdapter adapter
            refObject = GameObject.Find("JoystickAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No JoystickAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("JoystickAdapter");
            }

#if !SCENE_HOST
            joystickAdapter = refObject.GetComponent <JoystickInput>();
            if (joystickAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No JoystickAdapter Component found. Create", this.GetType()));
                joystickAdapter = refObject.AddComponent <JoystickInput>();
            }
#endif

            // get InputAdapter adapter
            refObject = GameObject.Find("InputAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No InputAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("InputAdapter");
            }
            inputAdapter = refObject.GetComponent <InputAdapter>();
            if (inputAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No InputAdapter Component found. Create", this.GetType()));
                inputAdapter = refObject.AddComponent <InputAdapter>();
            }
            // inputAdapter.MainController = this;


            // get ui adapter
            refObject = GameObject.Find("GUI/Canvas/UI");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No GUI/Canvas/UI Object found. Create.", this.GetType()));
                refObject = new GameObject("UI");
                GameObject refParent = GameObject.Find("GUI/Canvas");
                refObject.transform.SetParent(refParent.transform, false);
            }
            ui = refObject.GetComponent <UI>();
            if (ui == null)
            {
                Debug.LogWarning(string.Format("{0}: No UI Component found. Create", this.GetType()));
                ui = refObject.AddComponent <UI>();
            }

            // get move camera component camera Adapter
            cameraAdapter = Camera.main.GetComponent <MoveCamera>();
            if (cameraAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No CameraAdapter Component found. Create", this.GetType()));
                cameraAdapter = Camera.main.gameObject.AddComponent <MoveCamera>();
            }
        }
示例#14
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            if (transform.childCount > 0)
            {
                lightTarget = transform.GetChild(0);
                if (lightTarget != null)
                {
                    sourceLight = lightTarget.GetComponent <Light>();
                }
            }


            if (sourceLight)
            {
                target = this.transform;

                initialLightColor     = sourceLight.color;
                initialLightColor.a   = 0.25f;
                initialLightIntensity = sourceLight.intensity;

                if (sourceLight.type == LightType.Directional)
                {
                    isDirectionalLight = true;
                    lightGeo           = lightTarget.Find("Arrow");
                }
                else if (sourceLight.type == LightType.Spot)
                {
                    isSpotLight       = true;
                    initialLightRange = sourceLight.range;
                    initialSpotAngle  = sourceLight.spotAngle;
                    lightGeo          = lightTarget.Find("Cone");
                }
                else if (sourceLight.type == LightType.Point)
                {
                    isPointLight      = true;
                    initialLightRange = sourceLight.range;
                    lightGeo          = lightTarget.Find("Sphere");
                }
            }
            else
            {
                target = this.transform;
            }

            //initalize cached references
            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();


            //cache Reference to animation data
            animData = AnimationData.Data;

            //update initial parameters
            initialPosition = target.position;
            initialRotation = target.rotation;
            initialScale    = target.localScale;

            lastPosition = initialPosition;
            lastRotation = initialRotation;


            //generate colliding volumes
            if (generateBoxCollider)
            {
                //calculate bounds
                bounds = new Bounds(Vector3.zero, Vector3.zero);


                bool       hasBounds = false;
                Renderer[] renderers = this.gameObject.GetComponentsInChildren <Renderer>();
                foreach (Renderer render in renderers)
                {
                    if (!sceneLoader.isEditable(render.gameObject) || render.gameObject == this.gameObject)
                    {
                        if (hasBounds)
                        {
                            bounds.Encapsulate(render.bounds);
                        }
                        else
                        {
                            bounds    = render.bounds;
                            hasBounds = true;
                        }
                    }
                }

                BoxCollider col = this.gameObject.AddComponent <BoxCollider>();

                // TODO: temporary
                col.isTrigger = true; // not interacting



                if (sourceLight)
                {
                    // BoxCollider col_lightquad = lightTarget.FindChild("LightQuad").GetComponent<BoxCollider>();
                    // col.size = col_lightquad.size;
                    // col.center = col_lightquad.center;
                    col.isTrigger = true; // not interacting
                    LightIcon iconScript = lightTarget.Find("LightQuad").GetComponent <LightIcon>();
                    iconScript.TargetCollider = col;
                    iconScript.TargetScale    = target.lossyScale; // target.localScale;
                }
                else
                {
                    col.center              = new Vector3((bounds.center.x - this.transform.position.x) / this.transform.lossyScale.x, (bounds.center.y - this.transform.position.y) / this.transform.lossyScale.y, (bounds.center.z - this.transform.position.z) / this.transform.lossyScale.z);
                    col.size                = new Vector3(bounds.size.x / this.transform.lossyScale.x, bounds.size.y / this.transform.lossyScale.y, bounds.size.z / this.transform.lossyScale.z);
                    col.material            = new PhysicMaterial();
                    col.material.bounciness = 1.0f;
                }

                //target.position = initialPosition;
                // target.localScale = initialScale;
                // target.rotation = initialRotation;
            }
            if (!isDirectionalLight && !isPointLight && !isSpotLight && this.name != "camera")
            {
                this.gameObject.AddComponent <Rigidbody>();
                this.gameObject.GetComponent <Rigidbody>().mass = 100.0f;
                this.gameObject.GetComponent <Rigidbody>().drag = 2.5f;


                // TODO: temporary
                this.gameObject.GetComponent <Rigidbody>().useGravity = false;
            }


            // get animator object to trigger mocap anims
            animatorObject = transform.GetComponent <AnimatorObject>();
            if (animatorObject == null)
            {
                animatorObject = transform.parent.GetComponent <AnimatorObject>();
            }
        }
        //!
        //! Use this for pre initialization
        //!
        void Awake()
        {
            // read settings from inspector values
            VPETSettings.mapValuesFromObject(this);

            // read settings from config file if wanted
            if (!ignoreConfig)
            {
                string filePath = Application.dataPath + "/VPET/editing_tool.cfg";
                if (!File.Exists(filePath))
                {
                    filePath = Application.persistentDataPath + "/editing_tool.cfg";
                }

                VPETSettings.mapValuesFromConfigFile(filePath);
            }

            // read settings from user preferences
            VPETSettings.mapValuesFromPreferences();


            // check if scene dump file available
            if (Directory.Exists(Application.dataPath + "/Resources/VPET/SceneDumps"))
            {
                VPETSettings.Instance.sceneDumpFolderEmpty = (Directory.GetFiles(Application.dataPath + "/Resources/VPET/SceneDumps", "*.bytes").Length == 0);
                // print("PETSettings.Instance.sceneDumpFolderEmpty " + VPETSettings.Instance.sceneDumpFolderEmpty);
            }

            VPETSettings.Instance.sceneDumpFolderEmpty = false;


            // get all adapters and add them if missing
            //
            // get scene adapter
            GameObject refObject = GameObject.Find("SceneAdapter");

            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No SceneAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("SceneAdapter");
            }
            sceneAdapter = refObject.GetComponent <SceneLoader>();
            if (sceneAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No SceneAdapter Component found. Create", this.GetType()));
                sceneAdapter = refObject.AddComponent <SceneLoader>();
            }

            // get server adapter
            refObject = GameObject.Find("ServerAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No ServerAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("ServerAdapter");
            }
            serverAdapter = refObject.GetComponent <ServerAdapter>();
            if (serverAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No ServerAdapter Component found. Create", this.GetType()));
                serverAdapter = refObject.AddComponent <ServerAdapter>();
            }

            // set properties
            serverAdapter.SceneLoader = sceneAdapter;

            // get animation adapter
            refObject = GameObject.Find("AnimationController");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No AnimationController Object found. Create.", this.GetType()));
                refObject = new GameObject("AnimationAdapter");
            }
            animationController = refObject.GetComponent <AnimationController>();
            if (animationController == null)
            {
                Debug.LogWarning(string.Format("{0}: No AnimationController Component found. Create", this.GetType()));
                animationController = refObject.AddComponent <AnimationController>();
            }


            // get JoystickAdapter adapter
            refObject = GameObject.Find("JoystickAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No JoystickAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("JoystickAdapter");
            }
            joystickAdapter = refObject.GetComponent <JoystickInput>();
            if (joystickAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No JoystickAdapter Component found. Create", this.GetType()));
                joystickAdapter = refObject.AddComponent <JoystickInput>();
            }


            // get InputAdapter adapter
            refObject = GameObject.Find("InputAdapter");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No InputAdapter Object found. Create.", this.GetType()));
                refObject = new GameObject("InputAdapter");
            }
            inputAdapter = refObject.GetComponent <InputAdapter>();
            if (inputAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No InputAdapter Component found. Create", this.GetType()));
                inputAdapter = refObject.AddComponent <InputAdapter>();
            }
            // inputAdapter.MainController = this;


            // get ui adapter
            refObject = GameObject.Find("GUI/Canvas/UI");
            if (refObject == null)
            {
                Debug.LogWarning(string.Format("{0}: No GUI/Canvas/UI Object found. Create.", this.GetType()));
                refObject = new GameObject("UI");
                GameObject refParent = GameObject.Find("GUI/Canvas");
                refObject.transform.SetParent(refParent.transform, false);
            }
            ui = refObject.GetComponent <UI>();
            if (ui == null)
            {
                Debug.LogWarning(string.Format("{0}: No UI Component found. Create", this.GetType()));
                ui = refObject.AddComponent <UI>();
            }

            // get move camera component camera Adapter
            cameraAdapter = Camera.main.GetComponent <MoveCamera>();
            if (cameraAdapter == null)
            {
                Debug.LogWarning(string.Format("{0}: No CameraAdapter Component found. Create", this.GetType()));
                cameraAdapter = Camera.main.gameObject.AddComponent <MoveCamera>();
            }

#if USE_TANGO
            GameObject tangoObject = GameObject.Find("Tango Manager");
            if (tangoObject)
            {
                tangoApplication = tangoObject.GetComponent <Tango.TangoApplication>();
            }
#endif
        }
示例#16
0
 public static void RegisterObjectSender()
 {
     ServerAdapter.RegisterSender(ObjectSenderBasic.Instance);
     ServerAdapter.RegisterSender(ObjectSenderKatana.Instance);
 }
示例#17
0
        //!
        //! Use this for initialization
        //!
        void Start()
        {
            if (transform.childCount > 0)
            {
                lightTarget = transform.GetChild(0);
                if (lightTarget != null)
                {
                    sourceLight = lightTarget.GetComponent <Light>();
                }
            }

            // if (this.transform.parent.transform.GetComponent<Light>())

            if (sourceLight)
            {
                // target = this.transform.parent;
                target = this.transform;

                initialLightColor     = sourceLight.color;
                initialLightColor.a   = 0.25f;
                initialLightIntensity = sourceLight.intensity;

                if (sourceLight.type == LightType.Directional)
                {
                    isDirectionalLight = true;
                    lightGeo           = lightTarget.FindChild("Arrow");
                }
                else if (sourceLight.type == LightType.Spot)
                {
                    isSpotLight       = true;
                    initialLightRange = sourceLight.range;
                    initialSpotAngle  = sourceLight.spotAngle;
                    lightGeo          = lightTarget.FindChild("Cone");
                }
                else if (sourceLight.type == LightType.Point)
                {
                    isPointLight      = true;
                    initialLightRange = sourceLight.range;
                    lightGeo          = lightTarget.FindChild("Sphere");
                }
            }
            else
            {
                target = this.transform;
            }

            //initalize cached references
            animationController = GameObject.Find("AnimationController").GetComponent <AnimationController>();
            mainController      = GameObject.Find("MainController").GetComponent <MainController>();
            serverAdapter       = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();
            undoRedoController  = GameObject.Find("UndoRedoController").GetComponent <UndoRedoController> ();

            //cache Reference to animation data
            animData = AnimationData.Data;

            //update initial parameters
            initialPosition = target.position;
            initialRotation = target.rotation;
            initialScale    = target.localScale;

            lastPosition = initialPosition;
            lastRotation = initialRotation;


            //generate colliding volumes
            if (generateBoxCollider)
            {
                //calculate bounds
                //target.position = new Vector3(-3000,-3000,-3000);
                //target.localScale = new Vector3(1, 1, 1);
                bounds = new Bounds(Vector3.zero, Vector3.zero);
                //set rotation to 0
                // this.transform.rotation = Quaternion.Euler(Vector3.zero);


                bool       hasBounds = false;
                Renderer[] renderers = this.gameObject.GetComponentsInChildren <Renderer>();
                foreach (Renderer render in renderers)
                {
                    if (hasBounds)
                    {
                        bounds.Encapsulate(render.bounds);
                    }
                    else
                    {
                        bounds    = render.bounds;
                        hasBounds = true;
                    }
                }

                BoxCollider col = this.gameObject.AddComponent <BoxCollider>();

                if (sourceLight)
                {
                    // BoxCollider col_lightquad = lightTarget.FindChild("LightQuad").GetComponent<BoxCollider>();
                    // col.size = col_lightquad.size;
                    // col.center = col_lightquad.center;
                    LightIcon iconScript = lightTarget.FindChild("LightQuad").GetComponent <LightIcon>();
                    iconScript.TargetCollider = col;

                    iconScript.TargetScale = target.localScale;
                }
                else
                {
                    col.center              = new Vector3((bounds.center.x - this.transform.position.x) / this.transform.lossyScale.x, (bounds.center.y - this.transform.position.y) / this.transform.lossyScale.y, (bounds.center.z - this.transform.position.z) / this.transform.lossyScale.z);
                    col.size                = new Vector3(bounds.size.x / this.transform.lossyScale.x, bounds.size.y / this.transform.lossyScale.y, bounds.size.z / this.transform.lossyScale.z);
                    col.material            = new PhysicMaterial();
                    col.material.bounciness = 1.0f;
                }

                //target.position = initialPosition;
                // target.localScale = initialScale;
                // target.rotation = initialRotation;
            }
            if (!isDirectionalLight && !isPointLight && !isSpotLight && this.name != "camera")
            {
                this.gameObject.AddComponent <Rigidbody>();
                this.gameObject.GetComponent <Rigidbody>().mass = 100.0f;
                this.gameObject.GetComponent <Rigidbody>().drag = 2.5f;



                // this.gameObject.GetComponent<Rigidbody>().useGravity = false;
            }

            //Initalize animation loading if animation available
            AnimationSerializer asScript = target.gameObject.AddComponent <AnimationSerializer>();

            if (asScript.loadData())
            {
                //register the object in the animation Controller
                GameObject.Find("AnimationController").GetComponent <AnimationController>().registerAnimatedObject(gameObject.GetComponent <SceneObject>());
                gameObject.GetComponent <SceneObject>().setKinematic(true, false);
                updateAnimationCurves();
            }
        }
示例#18
0
 // Start is called before the first frame update
 void Start()
 {
     serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();
     InvokeRepeating("sendAnimation", 0.0f, 0.04f);
 }
示例#19
0
        //!
        //! Use this for initialization
        //!
        protected void Start()
        {
            target = this.transform;

            isPhysicsActive = false;

            serverAdapter = GameObject.Find("ServerAdapter").GetComponent <ServerAdapter>();

#if !SCENE_HOST
            animationController = GameObject.Find("AnimationController").GetComponent <AnimationController>();
            mainController      = GameObject.Find("MainController").GetComponent <MainController>();
            sceneLoader         = GameObject.Find("SceneAdapter").GetComponent <SceneLoader>();

            //cache Reference to animation data
            animData = AnimationData.Data;
#endif

            //update initial parameters
            initialPosition = target.localPosition;
            initialRotation = target.localRotation;
            initialScale    = target.localScale;

            lastPosition = initialPosition;
            lastRotation = initialRotation;

            InvokeRepeating("checkUpdate", 0.0f, updateIntervall);

            if (gameObject.GetComponent <Animator>())
            {
                isAnimatedCharacter = true;
            }

            //generate colliding volumes
            if (generateBoxCollider)
            {
                //calculate bounds
                bounds = new Bounds(Vector3.zero, Vector3.zero);

                bool       isSkinned = false;
                bool       hasBounds = false;
                Renderer[] renderers = this.gameObject.GetComponentsInChildren <Renderer>(true);
                foreach (Renderer renderer in renderers)
                {
                    if (!sceneLoader.isEditable(renderer.gameObject) || renderer.gameObject == this.gameObject)
                    {
                        if (hasBounds)
                        {
                            if (typeof(SkinnedMeshRenderer) == renderer.GetType())
                            {
                                bounds.Encapsulate(((SkinnedMeshRenderer)renderer).localBounds);
                                isSkinned = true;
                            }
                            else
                            {
                                bounds.Encapsulate(renderer.bounds);
                            }
                        }
                        else
                        {
                            if (typeof(SkinnedMeshRenderer) == renderer.GetType())
                            {
                                bounds    = ((SkinnedMeshRenderer)renderer).localBounds;
                                isSkinned = true;
                            }
                            else
                            {
                                bounds = renderer.bounds;
                            }
                            hasBounds = true;
                        }
                    }
                }


                boxCollider = this.gameObject.AddComponent <BoxCollider>();
#if !SCENE_HOST
                if (this is SceneObjectCamera)
                {
                    boxCollider.enabled = mainController.showCam;
                }
#endif



                // col.isTrigger = true; // not interacting
                if ((this is SceneObject) && !(this is SceneObjectLight))
                {
                    if (isSkinned)
                    {
                        boxCollider.center = bounds.center;
                        boxCollider.size   = bounds.size;
                    }
                    else
                    {
                        boxCollider.center = new Vector3((bounds.center.x - this.transform.position.x) / this.transform.lossyScale.x, (bounds.center.y - this.transform.position.y) / this.transform.lossyScale.y, (bounds.center.z - this.transform.position.z) / this.transform.lossyScale.z);
                        boxCollider.size   = new Vector3(bounds.size.x / this.transform.lossyScale.x, bounds.size.y / this.transform.lossyScale.y, bounds.size.z / this.transform.lossyScale.z);
                    }

                    boxCollider.material            = new PhysicMaterial();
                    boxCollider.material.bounciness = 1.0f;
                }
            }
            if (this is SceneObject)
            {
                rigidbody = this.gameObject.AddComponent <Rigidbody>();

                rigidbody.mass = 100f;
                rigidbody.drag = 2.5f;

                // TODO: temporary
                rigidbody.useGravity  = true;
                rigidbody.isKinematic = true;
                globalKinematic       = true;
            }

#if !SCENE_HOST
            //Initalize animation loading if animation available
            AnimationSerializer asScript = target.gameObject.AddComponent <AnimationSerializer>();
            if (asScript.loadData())
            {
                //register the object in the animation Controller
                GameObject.Find("AnimationController").GetComponent <AnimationController>().registerAnimatedObject(gameObject.GetComponent <SceneObject>());
                gameObject.GetComponent <SceneObject>().setKinematic(true, false);
                updateAnimationCurves();
            }

            isPlayingAnimation = false;
#endif
        }
示例#20
0
文件: Action.cs 项目: theseim/VPET
 //!
 //! constructor for kinematic on/off
 //! @param    newObj              transform of the gameObject on which modification is applied
 //! @param    changeKinematic     new value of kinematic
 //! @param    server              reference to server adapter to communicate object changes ofer network
 //!
 public Action(Transform newObj, bool changeKinematic, ServerAdapter server)
 {
     serverAdapter = server;
     obj           = newObj;
     type          = Type.kinematic;
 }