Ejemplo n.º 1
0
        private CacheManager()
        {
            _colorMaterialPrefab       = Resources.Load <Material>("Materials/AlphaMaterial");
            _textureMaterialPrefab     = Resources.Load <Material>("Materials/TextureMaterial");
            _transparentMaterialPrefab = Resources.Load <Material>("Materials/AlphaMaterial");
            _carMirrorMaterialPrefab   = Resources.Load <Material>("Materials/CarMirror");

            ProjectilePrefab  = Resources.Load <GameObject>("Prefabs/ProjectilePrefab");
            _3DObjectPrefab   = Resources.Load <GameObject>("Prefabs/ObjectPrefab");
            _noColliderPrefab = Resources.Load <GameObject>("Prefabs/NoColliderPrefab");
            _steerWheelPrefab = Resources.Load <RaySusp>("Prefabs/SteerWheelPrefab");
            _driveWheelPrefab = Resources.Load <RaySusp>("Prefabs/DriveWheelPrefab");
            _carBodyPrefab    = Resources.Load <GameObject>("Prefabs/CarBodyPrefab");
            _carPrefab        = Resources.Load <Car>("Prefabs/CarPrefab");

            VirtualFilesystem.Instance.Init();
            _materialCache["default"] = Object.Instantiate(_textureMaterialPrefab);
            Palette = ActPaletteParser.ReadActPalette("p02.act");
        }
Ejemplo n.º 2
0
        private RaySusp[] CreateWheelPair(Dictionary <string, GameObject> partDict, string placement, int wheelIndex, GameObject car, Vdf vdf, Vtf vtf, Wdf wheelDef)
        {
            string  wheel1Name = placement + "Right";
            RaySusp wheel      = Object.Instantiate(placement == "Front" ? _steerWheelPrefab : _driveWheelPrefab, car.transform);

            wheel.gameObject.name = wheel1Name;
            wheel.WheelRadius     = wheelDef.Radius; // This is not correct - find out where the radius is really stored
            wheel.SpringLength    = wheelDef.Radius;

            ImportCarParts(partDict, wheel.transform.Find("Mesh").gameObject, vtf, wheelDef.Parts, _noColliderPrefab, false);
            wheel.transform.localPosition = vdf.WheelLoc[wheelIndex].Position;

            RaySusp wheel2 = Object.Instantiate(wheel, car.transform);

            wheel2.name = placement + "Left";
            wheel2.transform.localPosition           = vdf.WheelLoc[wheelIndex + 1].Position;
            wheel2.transform.Find("Mesh").localScale = new Vector3(-1, 1, 1);

            return(new[] { wheel, wheel2 });
        }